Joined: 7/29/2011
Posts: 61
So x264 itself is opening the avs file?
Yeah thats how everybody does it, no? http://www.zshare.net/video/99127981b28adac1/ http://www.zshare.net/download/991279840d603c66/ Nothing is wrong with my player, it plays 10-bit files from this site fine.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Santiago wrote:
So x264 itself is opening the avs file?
Yeah thats how everybody does it, no?
No, but I don't think that's a problem here (and it is a perfectly legitimate way to do it.) I loaded both your test files up, examined them closely. I also made an avisynth script that loaded the lagarith one and converted it through YV12 with various chroma resampling methods, so I would know exactly what the 4:2:0 artifacts would look like in this situation. I saw no evidence of any chroma subsampling having been done at any point in the h264 clip. Note the lack of any red bleed on the plumber's cap in the h264 encode: http://img851.imageshack.us/img851/1239/showme.png
function prepout (clip c, string s)
{
  return Crop (c, 0, 140, -192, -10).Subtitle(s)
}

c = AviSource ("smbLagarith.avi")

tl = FFVideoSource ("smbx26410bit.mkv").prepout("h264")

tr = c.ConvertToYV12 (chromaresample="point").ConvertToRGB32(chromaresample="point").prepout("point")

tc = c.ConvertToYV12 (chromaresample="bicubic").ConvertToRGB32(chromaresample="bicubic").prepout("bic")
bc = c.ConvertToYV12 (chromaresample="bilinear").ConvertToRGB32(chromaresample="bilinear").prepout("bil")

bl = c.prepout("orig")

br = c.ConvertToYV12 (chromaresample="lanczos").ConvertToRGB32(chromaresample="lanczos").prepout("lanc")


StackHorizontal (StackVertical (tl, bl), StackVertical (tc, bc), StackVertical (tr, br))
The levels are wrong though, check your "range" related parameters. (Aside: wtf is up with chroma point resample? Chroma location disagreement?)
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
The levels are wrong. Natt's right.
Joined: 7/29/2011
Posts: 61
Natt, forget what I said, you are right. Something is wrong with my player. I opened my MKV with virtualdub and the quality was beautiful. How do I get my player to stop outputting it at lower colorspace?
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Lex wrote:
The levels are right.
Black in the lagarith clip: RGB (2,2,2) Black in the h264 clip after converting back to RGB24: RGB (18,18,18) Edit: Didn't inspect the colormatrix, so no opinion either way on that.
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
If you're running Windows, get the latest nightly build of Media Player Classic - Home Cinema, the latest LAV Filters, and the latest madVR. Install all of these and configure MPC-HC to use them via "External Filters" in its options (actually, "Playback" -> "Output" for madVR which is a renderer). Natt: Oh.
Joined: 7/29/2011
Posts: 61
I installed the latest KLite codec pack a few days ago (the 10-bit version of the super mario TAS refused to play without massive artifacts mess before) so I should have the latest versions of everything. On the external filters I added madVR, LAV splitter and LAV video decoder and set madVR on output playback settings but my output is still YV12.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Make sure to check that those are the decoders actually being used. Edit: Should have said "filters": splitter, decoder, renderer.
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Uninstall the K-Lite Codec Pack and just install those selected filters. Who knows what crazy stuff K-Lite installs? All you need to play video is a player to handle DirectShow filters and keyboard/mouse input, a splitter to handle file input, a video decoder to decompress video codec formats, an audio decoder to decompress audio codec formats, and a renderer to display this data in realtime. What I listed in my previous post includes all the best of those things in Windows for the formats we're using (with the exception that LAV Splitter can't yet handle chapters in mkv files; need Haali Splitter for that). Nothing more is necessary, and anything more could cause unexpected problems. By the way, you can check which filters are currently in use in MPC-HC by clicking "Play" -> "Filters". Everything listed in the resulting list is currently in use.
Joined: 7/29/2011
Posts: 61
Basically, all I need is lots of things that take forever fetching and installing one at a time when KLCP has it all in one. No thanks. :P Natt, how do I check if the decoder is being used?
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Santiago wrote:
Natt, how do I check if the decoder is being used?
Lex wrote:
By the way, you can check which filters are currently in use in MPC-HC by clicking "Play" -> "Filters". Everything listed in the resulting list is currently in use.
Joined: 7/29/2011
Posts: 61
It says madVR Renderer, ffdshow video decoder and Haali media source. It still is YV12 output though.
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Try using LAV Video Decoder instead of ffdshow Video Decoder. Alternatively, you could try the latest version of ffdshow-tryouts. The version of ffdshow that comes with K-Lite Codec Pack might be pretty old.
Joined: 7/29/2011
Posts: 61
Lex wrote:
Try using LAV Video Decoder instead of ffdshow Video Decoder
How?
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Santiago wrote:
Lex wrote:
Try using LAV Video Decoder instead of ffdshow Video Decoder
How?
Lex wrote:
Install all of these and configure MPC-HC to use them via "External Filters" in its options (actually, "Playback" -> "Output" for madVR which is a renderer).
Click "Add Filter..." to add the filters you want on the external filters list. These should include LAV Video Decoder and ffdshow Video Decoder. Additionally, set LAV Video Decoder to "Prefer" and ffdshow Video Decoder to "Block". This assumes you have already installed LAV Filters. If you haven't, you can get the installer from here. Using the installer is now recommended by the LAV Filters author, as of version 0.46.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
natt could you please replace your image with just a link? Some people have more narrow monitors (like me).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
natt wrote:
I'm not the best coder around =/
Did you post the source code? Maybe someone can help...
Joined: 7/29/2011
Posts: 61
Oh cool I got it working now. See I didnt have ffdshow on my external filters list but it appeared anyway. To fix this, I got rid of madVR from external filters as well as switched back to VC9 renderless in the playback options. Now I finally have RGB in all its glory! I will try the ffdshow tryout though since MPC is not my main player and I would like to play it on other players. Thanks everyone, and keep encoding in 10-bit, scrap the old low-quality YV12 crap!
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
If you're in Windows and you want playback quality, use the setup I suggested. Also, don't use VMR-9 (assuming that's what you meant by "VC9 renderless") because it fails at vsync and drops frames from high-framerate video, such as that found in TAS video encodes. Try EVR Sync, EVR Custom Pres., or madVR, using the latest nightly build of MPC-HC and the latest version of madVR.
Post subject: Re: How to make 10-bit encodes?
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Ilari wrote:
Santiago wrote:
Is 10-bit 1024 shades for RGB?
No, video compression usually uses YCbCr instead of RGB.
AFAIK lossy video compression usually uses a color space in the form of a grayscale channel and separate color information because it's more lossy-friendly than the RGB color space (in other words, grayscale+color can be compressed more without the human brain noticing much difference than RGB). However, when dealing with lossless compression, does it make a difference?
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
http://coalgirls.wakku.to/?page_id=4611 http://www.avsforum.com/avs-vb/showthread.php?t=1357375 http://haruhichan.com/wpblog/?p=205 Some guides. Note that a few direct download links may already be outdated, so just go to each tool's website and get the newest stable version.
Post subject: Re: How to make 10-bit encodes?
Emulator Coder, Skilled player (1141)
Joined: 5/1/2010
Posts: 1217
Warp wrote:
AFAIK lossy video compression usually uses a color space in the form of a grayscale channel and separate color information because it's more lossy-friendly than the RGB color space
Y is the greyscale channel and Cb and Cr are the color info. Some other reasons: * The sum of entropies of Y, Cb and Cr channels is usually fair amount smaller than sum of entropies of R, G and B channels (improved compression) * YCbCr is much easier to chroma subsample than RGB.
Warp wrote:
However, when dealing with lossless compression, does it make a difference?
AFAIK, Lossless compression algorithms usually store one of: * R, G, B * R - G, G, B - G. * Y, Cg, Co The point of the last two is to try to reduce the entropy. YCbCr is not used for lossless compression because it is not lossless to convert to and from RGB.
Player (65)
Joined: 4/21/2011
Posts: 232
natt wrote:
(Aside: wtf is up with chroma point resample? Chroma location disagreement?)
There isn't an option to set chromainplacement where it would need to be to make point chroma resample behave like you'd want. (it defaults to mpeg2 placement) This was gone over last month on doom9, and I came up with a workaround a couple posts down. http://forum.doom9.org/showthread.php?p=1551403#post1551403
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
nanogyth wrote:
natt wrote:
(Aside: wtf is up with chroma point resample? Chroma location disagreement?)
There isn't an option to set chromainplacement where it would need to be to make point chroma resample behave like you'd want. (it defaults to mpeg2 placement) This was gone over last month on doom9, and I came up with a workaround a couple posts down. http://forum.doom9.org/showthread.php?p=1551403#post1551403
Hmmm... so if I'm understanding this correctly, the chroma location you get from pointresize yv24->yv12 is fixed to chromaloc=2 (using notation from the h264 spec)? But that's not one of the placement options in avisynth. No matter, you'd never use point resize of chroma anyway. If I'm understanding things correctly, the simplest resizer one would actually use (average chroma values across 4 pixels) results in an effective chroma location equal to jpeg/mpeg1?