1. This forum section is a read-only archive which contains old newsgroup posts. If you wish to post a query, please do so in one of our main forum sections (here). This way you will get a faster, better response from the members on Motherboard Point.

VMR9 video playback too bright/washed (TV range instead of PC range)

Discussion in 'Nvidia' started by Ehud Shapira, Feb 6, 2007.

  1. Ehud Shapira

    Ehud Shapira Guest

    I have a problem with video playback on an FX 5200 on Win9x. The video
    is too bright/washed using VMR9 output (not overlay), because the YUV
    range isn't extended to 0-255 and remains the original 16-235/240, so
    blacks and whites aren't what they should be, etc.

    This is a known problem with driver versions 6x.xx and newer (don't
    know about >81.98 as these are the latest for Win9x). There's
    information on the web about adding a VMRCCCSStatus value to the
    registry to override the default behavior, but the position of this
    value is only specified for WinNT. I tried adding it to a few places
    on Win9x to no avail.

    All 6x.xx, 7x.xx and 8x.xx drivers suffer from this. I'd happily use
    old drivers but the 5x.xx series is trouble for certain games, and
    4x.xx ruin video playback in different way. Older than that doesn't
    support the FX series.

    Does anyone know how to fix this annoying problem?
     
    Ehud Shapira, Feb 6, 2007
    #1
    1. Advertisements

  2. Ehud Shapira

    First of One Guest

    Not sure which media app you are using. In Media Player Classic, if you run
    in VMR9 mode, there is a shader preset for converting 16-235 to 0-255, among
    other effects like inverting colors, emboss, wrapping the video to a sphere,
    etc.

    There is also a "YUV extended mode" checkbox in the XviD control panel, if
    I'm not mistaken, though obviously this applies to XviD-encoded files only.
     
    First of One, Feb 7, 2007
    #2
    1. Advertisements

  3. Ehud Shapira

    Ehud Shapira Guest

    Thanks for the reply.

    I'm not using MPC (6.4.9.0) most of the time, nor do I see that
    shader. What is it called and where do you see it?
    Perhaps it won't work on this old/weak gfx card, but either way, it'd
    be an interesting experiment but not a global solution.

    I don't see "YUV extended mode" in xvid, although I do see it in the
    DivX decoder (where it doesn't help). Are you using the newer xvid
    1.1.x versions? I'm still on 1.1.0.

    Even if it worked, a solution specific to a format or player would be
    of limited help. The existence of that registry setting suggests
    nVidia were aware of it, so I'm hoping there's a way to enable it (on
    Win9x).

    I suppose you're on WinXP. Did you get that VMRCCCSStatus value to fix
    it?
     
    Ehud Shapira, Feb 7, 2007
    #3
  4. Ehud Shapira

    Ehud Shapira Guest

    I found an alternative way to see how it looks if extended YUV range
    is handed to the renderer: using ffdshow's AviSynth module
    (ColorYUV(levels="TV->PC")). It looks fine, although I didn't yet
    compare it to the source.

    This still isn't a perfect solution because it appears to use more
    CPU, and I don't have much to spare. :)
     
    Ehud Shapira, Feb 7, 2007
    #4
  5. Ehud Shapira

    First of One Guest

    First, make sure you are running in the correct mode. Go to View ->
    Options -> Output. Select "VMR9 renderless" and "Use texture surfaces and
    render video in 3D". Once that's done, play any video, right-click in the
    field of the video and select Shaders -> 16-235 to 0-255.

    This shader requires Pixel Shader 1.4 capability, which means it needs a
    Geforce FX-series, Radeon 8500, or higher card to run. Your FX5200 should be
    able to handle it.

    What media player app are you using?
    I use Media Player Classic to play all my videos, so for *me* it is as good
    as being global. :) Some of its functions are quite unique: stretch the
    video in any direction, advance/delay the audio stream by an arbitrary
    amount, subtitles read from a text file, etc. etc.
    I don't use an nVidia card. My two Radeon X1900XTs don't experience this
    problem.
     
    First of One, Feb 8, 2007
    #5
  6. Ehud Shapira

    Ehud Shapira Guest

    right-click in the field of the video and select Shaders -> 16-235 to 0-255.
    Nothing alike here. Perhaps some extras added by you later?
    Regardless of the PS capabilities, I wonder if this card has enough
    horsepower to do all this processing without dropping frames. Besides
    the limited core capabilities, it's running on a 64-bit memory
    bus. :-/
    Crystal Player.

    It seems better at not skipping frames, and allows you to choose what
    to do in case it can't keep up (which originally let me play some
    movies which would go out of sync in other players). It can switch the
    renderer on-the-fly with a hotkey, which is useful when trying compare
    them or analyze problems. It has a very nice subtitles renderer.
    Unlike MPC, its seekbar is actually manageable (although seeking
    itself could use some fixing), and it doesn't have issues with the
    taskbar showing above it when in fullscreen. Audio can be skewed on-
    the-fly too.

    But, I'm eagerly awaiting a newer version that will hopefully solve a
    whole array of problems and deficiencies. Still, MPC is much more
    awkward for me.

    Some problems with MPC are occasional freezes (of the whole computer)
    when loading videos, and crashes on others. There's also an
    unexplained long delay until it opens the file menu. I can't get it to
    show subtitles. But it does have a few positive points, and the
    shaders are interesting. If dealing with this YUV problem can be done
    by the GPU, that'd be another plus.

    Why would you want to randomly stretch the video, BTW? :)

    And while at it... any idea if there's a way to convert from YV12 to
    RGB using shaders, along with correct chroma upsampling (the
    equivalent of ffdshow's HQ YV12->RGB)? Letting the driver/hardware
    handle it leads to the all too common non-filtered upsampling (and so,
    ugly blockiness on pure red colors for e.g.).
    It's a problem deciding whose drivers suck more. :) I used to think
    nVidia are the clear winner (that is, work better), but that was
    before this FX card.
     
    Ehud Shapira, Feb 8, 2007
    #6
  7. Nvidia is aware of this problem, they've been mentioning it in their
    driver release notes for many a release now and wrote that in the
    future if a DVI output is detected, the correct range would selected
    automatically.

    Here is their workaround:

    **********
    You can work around this issue by forcing either standard or extended
    mode as follows:

    1 Launch regedit and determine the current primary display card by
    looking in HKey_Local_Machine\Hardware\DeviceMap\Video and note the
    GUID (global unique identifier assigned by Windows), which is the long
    string in brackets { } at the end of the entry "\device\video0".

    2 Look in
    HKey_Local_Machine\SYSTEM\CurrentControlSet\Control\Video\{GUID}\0000
    where {GUID} is thenumber derived from the previous step.

    3 Open the "0000" directory and create a new DWORD called
    VMRCCCSStatus and give it a value of
    0x3 - to force use of the standard YUV range of 16-235
    0x1 - to force use of the extended YUV range of 0-255
    **********

    The weird thing? I think there is a typo in there, I could only get
    the 0-255 range if I reversed the value:
    0x3 for 0-255

    Don't mistake the VMRCCSStatus (should already be in the reigstry)
    with the one you have to create, VMRCCCSStatus. Wonder why the new
    one has three Cs, shrug, just don't mess with anything else in the
    registry, just add the above value and get out.

    Keep in mind, the previous workarounds mentioned (e.g. decoder values,
    MPC shaders, etc etc) will also work, BUT you lose any hardware
    acceleration that way (e.g. no purevideo). And Purevideo is so
    beautiful when watching movies (with IVTC enabled and edge/NR values
    set in the new control panel).
     
    Tashfeen Bhimdi, Feb 12, 2007
    #7
  8. Ehud Shapira

    Ehud Shapira Guest

    Yes, sadly they didn't provide a solution for Win9x, or maybe it's
    just buggy and they never bothered fixing it. I wonder how DVI is
    related. I'm using a CRT.
    I've seen it, which is why I mentioned the VMRCCCSStatus value. It
    doesn't do much for me.
    There's no double-C value as far as I know (it's not present in
    NVDD32.DLL, unlike the triple-C, nor in my registry). Are you sure you
    didn't mistakenly add it at some point?
    If PureVideo can be used simply as a DirectShow decoder, or if it's a
    player that allows tweaking the filter graph, then using different
    renderers shouldn't matter much or at all. Also, I don't see in the
    specs it supports MPEG4 ASP. Either way, PureVideo isn't for GF5.
     
    Ehud Shapira, Feb 15, 2007
    #8
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.