View Full Version : VERY IMPORTANT! - Strobing effects with ProCoder 2
mp3dom
27th February 2005, 06:29
Hi! Please answer me, it's very important!
I'm encoding some PAL Interlaced material with ProCoder 2 and in my Xbox i'm having strobing effects (the video is jumpy and i can see the interlaced lines on TV!!).
I haven't tested the DVD in a standalone player but this problem doesn't appear with PC. I've also tried to separate the frame in fields with VirtualDub (SeparateFields()) but all seems Ok!
The settings that i've used in procoder are:
* MPEG-2 Elementary Stream
* 720x576
* Upper Field (correct)
* 16x9
* Mastering Quality
* 2 Pass VBR with bitrate of 6000-7000-8000 (min-avg-max)
* Seq.Header on each GOP
* VBV Buffer 224
* Max Gop 12
* GOP Structure Automatic
* Picture Structure Always Frame (for compatibility)
* No closed Gop
* Intra DC 10
* Create DVD Compatible
Since this will be a commercial DVD i need the max compatibiliy... but it seems that ProCoder is not fully compatible with interlaced material.
Please let me know!!!
Thanks very very much!
freelock7
27th February 2005, 11:44
What's your source (DV, DVD video?)
robot1
27th February 2005, 12:58
Originally posted by mp3dom
* Upper Field (correct)
Assuming Upper Field is correct, have you selected it both in "Source Parameters" and in the "Target Parameters" ?
mp3dom
27th February 2005, 13:38
The "Upper Field First" were selected in both Source and Target tab (and TFF is the correct settings). The source is an mpeg-2 50 Mbps acquired by a Targa panel (Pinnacle). I use VirtualDub to open the file (mpeg2dec3 cannot properly decode so high mpeg2) and then Frameserving it to ProCoder via AviSynth.
I specify that the source is a 4/3 letterbox and i need to convert it in a 16/9 anamorphic. To avoid problems in croppin interlaced material, I've firstly de-interlaced the source with TDeint(mode=1), then I've cropped (and add borders) and then i've re-interlaced with SelectEvery(4,0,3). Something similar to:
avisource("video.vdr")
assumetff()
tdeint(mode=1)
Crop()
AddBorders()
converttoyuy2(interlaced=false)
Convolution3D()
UnDot()
assumetff()
separatefields()
selectevery(4,0,3)
weave()
This script comes from a scharfis_brain post about interlaced material so i think is good.
Also I've seen that with ProCoder there isn't any option to select the scanning order which is ZigZag both for progressive and the interlaced (even if I specify that the source is interlaced). Also the DC Type is always Frame where in CCE is Field (if interlaced). I dunno why but i want to think that ProCoder know what is doing... I don't want to think that these settings outputting an entire frame instead of 2 fields even if the source is flagged interlaced. :devil: :devil:
Thanks!
Edit: I was thinking that the script could be the problem so I've made the SAME encoding with CCE (using same settings) and this time the play were almost perfect so it's sure that ProCoder is the problem! The only differences from CCE and ProCoder (in the mpeg-2 header) is that in CCE the scantype is Alternate (ZigZag in ProCoder) and the DC Type is Field (Frame in ProCoder). Unfortunatly I can't change these 2 settings in any way in ProCoder... so I dunno what to do! Any suggestions?
Thanks!
freelock7
27th February 2005, 17:57
What canopus help file says:
"Interlacing - Displays whether or not your source is interlaced or not. If your source file is interlaced, the drop-down menu displays which field is stored first (lower/odd or upper/even). ProCoder determines how the frames of video are stored in the source file. Non-interlaced video stores and displays entire frames at one time. Interlaced mode splits each frame into sets of odd and even lines, called fields, and displays each field in succession. In ProCoder, the Odd field is the Lower field, and the Even field is the Upper field. Specifying the incorrect field order will result in vertical jitter of movement or ghosting during playback."
First, importing in Canopus interlaced file like avi (DV) can be encoded directly without any avisynth script. the only thing you have to know is to specify BFF (for DV source) or TFF (for DVD true interlaced source).
Two, you can deinterlace your MPG2 file to avoid encoding fields (CCE2.70 has this option). But the first option is better.
TEB
27th February 2005, 17:59
Hi. Whats the version u are using?
1.0? 1.1? 1.5? 2.0 ? 2.1?
mp3dom
27th February 2005, 19:19
Originally posted by freelock7
First, importing in Canopus interlaced file like avi (DV) can be encoded directly without any avisynth script.
I need to go through AviSynth because not only I need to load the file (anyway It's an mpeg-2 @ 50 Mbps!) but also i need to crop, add borders and resize the video to convert it from 4:3 letterboxed to 16:9 anamorphic.
the only thing you have to know is to specify BFF (for DV source) or TFF (for DVD true interlaced source).
The source is REALLY TFF interlaced and this is what i've do with ProCoder but seems that the xbox (i wish only xbox) output the entire frame rather than split the frame in 2 fields.
Two, you can deinterlace your MPG2 file to avoid encoding fields (CCE2.70 has this option). But the first option is better.
I cannot do that. I need to leave the interlacing.
Thanks
mp3dom
27th February 2005, 19:20
Originally posted by TEB
Hi. Whats the version u are using?
1.0? 1.1? 1.5? 2.0 ? 2.1?
I'm using 2.0. But 2.1 exists?! I haven't found any info about ProCoder 2.1!
Thanks
freelock7
27th February 2005, 19:22
So, try this:
avisource("video.vdr")
crop()
AddBorders()
Convolution3D()
UnDot()
Open Canopus and select TFF
mp3dom
27th February 2005, 19:35
Originally posted by freelock7
So, try this:
avisource("video.vdr")
crop()
AddBorders()
Convolution3D()
UnDot()
Open Canopus and select TFF
ATM I don't have the source with me... but I've the mpeg-2 with this problem. Anyway If i re-encode this file with CCE i get no problems at all (with the settings above). If I re-encode with ProCoder (without any avisynth script, directly from M2V) i get the same results (problems). The same problem appear if I use an mpeg-2 from an existent DVD (so it's not related to my 50 mbps mpeg-2 or my avs script.) :confused:
freelock7
28th February 2005, 07:51
Sorry, the wrong mpeg2 can't be used by Canopus once again.
mp3dom
28th February 2005, 09:04
Originally posted by freelock7
Sorry, the wrong mpeg2 can't be used by Canopus once again.
Remain the fact that if I use a "good" mpeg-2 (a PAL TFF interlaced M2V from a DVD) the problem still persist!
freelock7
1st March 2005, 07:56
DVD MPG2-true interlaced:
Pic.struct=frame
field top first=yes
Dct type=field
This is a TFF.
After encoding, you have to see the same structure in bitrateviewer.
mp3dom
1st March 2005, 08:12
That mpeg2 comes from ProCoder?!
My original TFF Source has the same values but after the ProCoder encoding became:
Pic. Structure: frame
Field Top First: yes
DCT Type: FRAME
Scan Type: ZIGZAG
Interlaced
The ProCoder settings that i've used, are in my first post.
freelock7
2nd March 2005, 08:51
It is right!( But only for a few interlaced DVD).
I tested my Norah jones live in new orleans DVD with the same result (idct=frame).
Keep in mind there are many ways to produce an interlaced movie and Canopus only detects TRUE interlaced (my DV movies are correctly encoded). Look at this:
http://www.animemusicvideos.org/guides/avtech/videogetb2a.html
So, to keep a good interlaced encoding Just add in your script:
assumeTFF()
SeparateFields()
odd=SelectOdd
evn=SelectEven
Interleave(evn,odd)
Weave()
DoubleWeave.SelectOdd()
At the end, it will be frame/frame but encoded as interlaced.
It should play fine on DVD player.
Don't forget to correct upsample chroma for interlaced source (CANOPUS don't work in YV12) at the end of the script:
converttorgb32(interlaced=true)
mp3dom
2nd March 2005, 09:38
Originally posted by freelock7
At the end, it will be frame/frame but encoded as interlaced.
It should play fine on DVD player.
OK, thanks! I'll try to see if somethings change.
Anyway I dunno why ProCoder make this "problem" and CCE not... :confused:
Don't forget to correct upsample chroma for interlaced source (CANOPUS don't work in YV12) at the end of the script:
converttorgb32(interlaced=true)
Typically I work in YUY2 colorspace. It is right also to use "ConvertToYUY2(interlaced=true)" or only RGB colorspace work to keep the correct chroma upsample?
Thanks again!
freelock7
2nd March 2005, 11:49
It supports yuy2 too.
freelock7
3rd March 2005, 09:58
Anyway I dunno why ProCoder make this "problem" and CCE not...
It's not really a problem.
CANOPUS is always DVD compliant with this mode.
Here a good explanation:
Field DCT coding and frame DCT coding differ according to the contents of the blocks that make up a macroblock.
In a frame coded macroblock, the four blocks each come from the same frame of video.
In a field coded macroblock, there are two possibilities:
either all four blocks come from a given field of video,
or two blocks come from one field and two from another field.
In frame coded macroblocks, the macroblock consists of a 16x16 spatial area taken from a progressive sequence frame, or from an interlaced sequence frame having both fields in place. The four blocks that compose the macroblock consist of the upper right, upper left, lower right, and lower left blocks of 8x8 pixels taken from the 16x16 macroblock. In other words, the blocks are all from the same frame; if the sequence is interlaced, each of the four blocks contains lines from both fields.
Progressive sequences: FRAME DCT ONLY
For progressive sequences, all pictures are frame pictures with frame DCT coded macroblocks only.
Interlaced sequences: FRAME or FIELD DCT
Field DCT coding can be applied only to interlaced sequences.
For interlaced sequences, the encoder may decide on a frame by frame basis to use a frame picture or two field pictures.
In the case of a field picture, all the blocks in every macroblock come from one field, that is, there are only field coded macroblocks and no frame coded macroblocks.
In the case of an (interlaced) frame picture, the decision to use frame or field DCT coding is made on a macroblock-by-macroblock basis.
- If the interlaced macroblock from an interlaced frame picture is frame DCT coded, each of its four blocks has pixels from both fields.
- If the interlaced macroblock from an interlaced frame picture is field coded, each block consists of pixels from only one of the two fields. Each 16x16 macroblock is split into fields 16 pixels wide x 8 pixels high by taking alternating lines of pixels, then each field is split into left and right parts, making two 8x8 blocks from one field and two from the other field. [http://www.bretl.com/mpeghtml/fldfrm.HTM]
Boulder
3rd March 2005, 12:45
Originally posted by freelock7
So, to keep a good interlaced encoding Just add in your script:
assumeTFF()
SeparateFields()
odd=SelectOdd
evn=SelectEven
Interleave(evn,odd)
Weave()
DoubleWeave.SelectOdd()
You don't need all that. If you want to reverse the field order, all you need is DoubleWeave().SelectOdd(). All that's before that line actually does nothing.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.