Incorrect levels when compressing to x264
1 Attachment(s)
When converting to x264, the levels appear to be significantly boosted in comparison to the source. I have no idea what is happening to cause this, and am not even sure if it's a playback issue or what.
The AviSynth script is simply: Code:
AVISource("E:\Capture\lm3_excerpt.avi", audio=false).AssumeFPS(30000,1001) Attached is the compressed mp4. The original source Huffyuv file may be found here. NB: Yadif() was chosen by MeGUI's analyse function in its AVS Script Creator, which only had 20 seconds or so to work with. This is not meant to be a blanket endorsement of using Yadif(). Additionally, this level problem occurs with other deinterlacers, too, so I doubt that's the root cause. |
Sounds like playback issue because I don't see any difference here (frame 277):
http://i.imgur.com/SQG9zPL.png http://i.imgur.com/MnoUVgD.png If you're using EVR renderer in MPC-HC - disable all video postprocessing options in the GPU control panel. This stuff works only when video is decoded using GPU, which is why this happens only with H.264 encode. Or just install madVR and switch to it, it bypasses all this nonsense :) |
4 Attachment(s)
Quote:
Quote:
From the same frame in both samples: AVI frame 451, YUV: http://www.digitalfaq.com/forum/atta...1&d=1444318141 mp4 frame 451, YUV http://www.digitalfaq.com/forum/atta...1&d=1444318199 AVI frame 451, RGB display: http://www.digitalfaq.com/forum/atta...1&d=1444318263 MP4 frame 451, RGB display: http://www.digitalfaq.com/forum/atta...1&d=1444318316 One major difference between the two samples is that the AVI is YUY2, the mp4 is YV12, and the mp4 is softer with some encoding noise visible as a minutely thicker layer of luma "speckles" in the RGB Waveform (you have to look pretty close at the RGB luma graph to see it). The script has some oversights or could be written differently. For example: Code:
AVISource("E:\Capture\lm3_excerpt.avi", audio=false).AssumeFPS(30000,1001). Code:
AVISource("E:\Capture\lm3_excerpt.avi", audio=false).AssumeFPS("NTSC_video"). The statement below would present problems in many circumstances, but doesn't matter here for several reasons: Code:
Yadif(order=-1) Full frame, double frame rate (all fields retained) true deinterlacing is modes 1 or 3. http://avisynth.org.ru/yadif/yadif.html There are two ways to tell yadif to use the correct field polarity: Code:
AssumeTFF().Yadif() Code:
Yadif(order=1) Code:
ConvertToYV12() Code:
ConvertToYV12(interlaced=true) Quote:
Quote:
|
Quote:
|
True. Just a caution to be careful at which point color conversions are made. I tend to slip up myself often.
|
Quote:
Quote:
Aside - unfortunately it looks like madVR won't work on the Radeon 9000 or 9800. I tried as soon as I set up this computer, but it seems like the GPUs are just too old. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Aside - I'm not sure what I need to do to prove to you that I'm not a complete newbie here, even if I sometimes use imprecise terminology or am not familiar with the finer points of interlaced video encoding. I do appreciate your help a lot sanlyn, but it would be nice to be spoken to as if I'm not a complete ignoramus :wink2: |
Quote:
Quote:
Code:
AssumeTFF().QTGMC(whatever presets) Quote:
Quote:
Quote:
Quote:
|
Quote:
Quote:
Quote:
Quote:
Quote:
I suppose the card captures at 16-235 by default then though? Nobody has mentioned a setting that would possibly change this to full range. Quote:
|
Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.