VideoHelp Forum




+ Reply to Thread
Results 1 to 12 of 12
  1. Member
    Join Date
    Mar 2014
    Location
    Brazil, Rio de Janeiro
    Search Comp PM
    I recorded a video with RGB, YUY2 and YV12... and I noticed pixel perfect lossless quality is only kept on RGB. Here is a side by side comparison:



    Is it possible to make it so the pixels will look lossless perfect on Y′UV, YUV, YCbCr, YPbPr, etc as well?
    Quote Quote  
  2. This is the effect of chroma subsampling
    https://en.wikipedia.org/wiki/Chroma_subsampling

    It's possible by encoding without subsampling (e.g. YUV 4:4:4) , but not all devices or decoders support this . So it depends what the scenario is or background information, or how this is going to be used
    Quote Quote  
  3. Member
    Join Date
    Mar 2014
    Location
    Brazil, Rio de Janeiro
    Search Comp PM
    Can HTML5, Flash or Silverlight ACTUALLY support and play RGB?
    Quote Quote  
  4. Originally Posted by synnchan View Post
    Can HTML5, Flash or Silverlight ACTUALLY support and play RGB?
    officially, no

    but there were a few snapshots that could, even 10bit support

    But for general public use, if you want it to actually work on the majority of targets, you need to use 4:2:0 (yv12)
    Quote Quote  
  5. Capture in RGB.
    Double the size (or 3x, or 4x, or 5x like you did here).
    Finally, convert to YV12.

    Not perfect, but much better, and YV12 plays everywhere.
    Quote Quote  
  6. I posted some 4:4:4 vp9 / webm tests over a year ago in this linked thread below. You can download and test if your browser version supports it or plays it back properly

    https://forum.videohelp.com/threads/371183-VP9-webm-1-4-officially-supports-YUV444-now

    Full color has been supported on the encoding side for quite a while (much longer for h264), but not widespread for browsers yet. It's still much safer to use 4:2:0
    Quote Quote  
  7. Use any codec capable to support RGB OR\AND YCbCr 4:4:4. If from some reason using such codec is not possible then follow raffriff42 advise and enlarge your source by 2 or 4 - point resampling will be mathematically perfect way (but least pleasant).
    Quote Quote  
  8. Originally Posted by raffriff42 View Post
    Capture in RGB.
    Double the size (or 3x, or 4x, or 5x like you did here).
    Finally, convert to YV12.

    Not perfect, but much better, and YV12 plays everywhere.
    Don't forget to use the point resizer for the chroma when converting to YV12:

    Code:
    PointResize(width*2, height*2) # or *4
    ConvertToYV12(chromaresample="point")
    Quote Quote  
  9. Member
    Join Date
    Mar 2014
    Location
    Brazil, Rio de Janeiro
    Search Comp PM
    Lemme see if I got it right... you mean if the video is 256x224, then doubling it into 512x448 or making it 1024x896 will fix the problem? I tried both with point resize but it still doesn't look perfect.
    Quote Quote  
  10. Originally Posted by synnchan View Post
    Lemme see if I got it right... you mean if the video is 256x224, then doubling it into 512x448 or making it 1024x896 will fix the problem?
    No, it only reduces the problem.

    Originally Posted by synnchan View Post
    I tried both with point resize but it still doesn't look perfect.
    Even though you've controlled the upscaling you can't control what the player does during playback. Players will usually use a smooth algorithm to upscale the chroma (to the same size as the luma) so you will still get a little blurring of the colors. But much less than if you had encoded at the original resolution.

    Your 256x224 RGB video has 256x224 R, G, and B planes. When converted to YUV with 4:2:0 chroma subsampling you get a 256x224 Y plane (greyscale image) and 128x112 U and V planes (color information), hence the blurring of the colors. By doubling the frame size first you get a 512x448 Y plane and 256x224 U and V planes. During playback the player upscales the 256x224 U and V planes to match the 512x448 Y plane.

    As noted earlier, if you want sharper colors you need to YUV 4:4:4. OrRGB 4:4:4. But those are not commonly used in files meant for distribution/playback.
    Last edited by jagabo; 3rd Nov 2016 at 16:07.
    Quote Quote  
  11. Member
    Join Date
    Mar 2014
    Location
    Brazil, Rio de Janeiro
    Search Comp PM
    okay, thanks. But I have another question: is there a way to do the ConvertToYV12(chromaresample="point") without avisynth? I have it installed, but I'd rather use virtualdub's filters alone if possible.

    Is there a filter I could use to point resize the chroma?
    Quote Quote  
  12. Originally Posted by synnchan View Post
    okay, thanks. But I have another question: is there a way to do the ConvertToYV12(chromaresample="point") without avisynth? I have it installed, but I'd rather use virtualdub's filters alone if possible.

    Is there a filter I could use to point resize the chroma?
    If possible perform operation at RGB space then you don't need any additional filters (postpone conversion to YCbCr till last step) - AFAIR VirtualDub natively working in RGB space so you should have no problems.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!