Hi10P Info / Guide

890

“What is Hi10P?” — An infoguide (v3.9.0)

You don’t need to follow this guide anymore, just install KCP. Click the above picture to be redirected.

NOTICE: Before you continue, please take note the author of this guide has stopped updating it. CLICK THE LOGO ABOVE OR CLICK HERE FOR THE ‘UPDATED’ VERSION – 06/02/2012

Basically, Hi10P is just an H.264 profile which uses 10 bits of information to represent color — doing this for some reason means we can get less banding (if you don’t know what that is, just know that it’s a Bad Thing) and a smaller file size. I won’t go into any further detail here but it’s basically a huge improvement. This guide is intended to help people find ideal media player solutions to play back Hi10P content — and Anime in general — and will be updated constantly as new information gets released or existing products change.

How to play back Hi10P content:

There are a number of different methods available to achieve (smooth) Hi10P playback:

  • Download the SMplayer standalone, or just use mplayer2 from the CLI
  • Grab the latest CCCP and use the player that comes with it (CCCP will dither everything down to 8 bit before rendering. You might also run into performance issues on slower hardware)
  • Use MPC-HC together with madVR and LAV (jump to guide) (maximum quality but needs a bit of configuration + tweaking)
  • Download the latest unstable build of VLC Media Player (you really shouldn’t be using VLC) and install it
  • If you’re having trouble playing Hi10P due to performance reasons, CoreAVC 3 is now out, but it still has some issues. Oh, and apparently worse performance than ffdshow. Never mind this, don’t install CoreAVC except for 8-bit software decoding (oh, LAV Video has faster CUDA decoding as well for 8-bit)

Pick one!

Mplayer2 (and SMplayer by extension) will be fine for most users, especially those who want something that just works out of the box. For the maximum playback quality however, you’ll need to use MPC-HC + madVR as shown below.

If you use some other operating system like GNU/Hurd/Linux/Haiku/BSD/VMX/OS/2/MS-DOS/Menuet/BareMetalOS/whatever, it’s the same deal — just get mplayer2 or VLC.

On Mac OS X, get Mplayer OSX with these binaries if you want OC and other neat stuff.

How NOT to play back Hi10P content:

  • CoreAVC in CUDA mode, DXVA, LAV CUVID as well as the stable versions of VLC and ffdshow do not support Hi10P at the time of writing, because no graphics cards support 10-bit decoding
  • The SVN build of ffdshow-tryouts now supports Hi10P
  • Note: Using VSFilter (aka DirectVobSub) with Hi10P requires dithering material down to 8-bit first, which can introduce some quantization inaccuracies later on and also uses incorrect levels due to a bug in swscale (when using CCCP/ffdshow or LAV to dither)

Pros of Hi10P:

  • Significantly higher compression ratios resulting in vastly decreased file sizes. The first rounds of testing show a 20-40% improvement on file sizes
  • Far more information is preserved from the original, removing such issues as banding and poor detail in dark scenes
  • The encoder will have less things to worry about

Cons:

  • Slower decoding and encoding
  • No support for DXVA or CUDA as of writing
  • Slight compatibility issues when using obscure, obsolete devices like the PS3 to play back movies — but who does that, really?

Motivation behind switching:

All technology is designed to move into the future. It was the same way with DVDs, the same way with Blu-ray discs, the same way with DivX and it’s the same with Hi10P. Newer decoders are much faster even with Hi10P content than decoders were in 8-bit mode a year ago, so that alone gives us the power needed to back it.

How to encode in Hi10P:

Assuming you already know how to encode, grab the relevant “10bit depth” build of x264. On Linux, just run “./configure –bit-depth=10” before compiling.

Special notice: The official x264 builds are still bugged and convert the levels incorrectly. If you want an unofficial build of x264 with the the fixes, use JEEB’s builds or patch it yourself.

If you use CRF, increase it slightly. If you use a bit rate, you can lower it a bit. Groups are still working hard to find the best settings, so only time will tell how much to raise/lower CRF by.

Make sure you either tag your releases with “Hi10P” or mention it somewhere in the description. Feel free to link back to this guide in the post/readme, to help people set up a working media player before they go whine in your comments section.

Examples of Hi10P content:

Hi10P anime samples can be found click here or here.

A good series of comparison images between 8 bit and 10 bit compression can be found here. These prove that 10-bit content produces much less aliasing at the same bitrate

There are plenty of picture comparisons available too. Remember to keep in mind that it isn’t 100% perfect yet and encoders are working hard to get the right settings.

Misconceptions about Hi10P and 10-bit output:

Having a 10-bit (aka 30-bit / DeepColor) display is NOT needed to see the benefits of Hi10P – 10-bit content, even when dithered down to 8 bit, is still significantly higher quality than 8 bit content, and the file sizes speak for themselves.

However, should you be one of the 0.01% of people with a 10-bit (or higher) display, you’ll need something like an AMD FirePro card, because even though the hardware is literally exactly the same, you can not for some reason just use the FirePro drivers and enable 10-bit output. It’s quite impossible, I’m sure of it. You’ll also need to use EVR CP because madVR doesn’t support 10 bit output yet for whatever reason I can’t fathom, but if you can patch your FirePro drivers I assume you can set up EVR CP as well.

Setup guide for MPC-HC + madVR:

This method will result in higher image quality and performance than using CCCP (or anything ffdshow-based, really), so if you’re struggling to play back Hi10P anime, or even regular 1080p, consider trying this. MadVR and LAV are updated regularly and uses very new versions of libav for decoding as well as custom edits to make 10-bit decoding even faster, giving it much more speed than the ridiculously outdated ffdshow-tryouts project, and the even more ridiculously outdated CCCP codec pack that is based on it.

Step Zero: Prerequisites:

  1. Uninstall ALL instances of MPC-HC, CCCP, ffdshow, madVR, Haali, K-lite, CoreAVC etc. you might have on your system.
    This is a clean guide that requires no other prerequisites to function, and ideally should have none installed either.

Step One: Downloading and Installation:

  1. Download and install the latest version of MPC-HC (you want the .exe version for an installer)
    Note: Get the 32-bit version (called x86) ONLY! The 64-bit version is incompatible with madVR and will not function at all
  2. Install the LAV Filters. These are necessary for decoding video and audio. You need to select the Splitter as well if you don’t want to use Haali, otherwise you have to install Haali manually:
  3. Obtain and install the latest version of Haali’s Media Splitter
  4. Note: You can skip this step if your PC isn’t very powerful! Download the latest version of madVR and extract it anywhere you like. Run install.bat inside the folder. DO NOT DELETE THE FOLDER AFTERWARDS, madVR lives inside it and does not copy itself anywhere else. Move it somewhere sensible before installing, for example C:\Program Files\madVR.
    Note: Make sure you’re logged in as an Administrator when running this! Do not right click and “run as admin”, log in as admin and run it normally!

Step Two: Configuration:

  1. Open up MPC-HC’s options menu. Under “Internal Filters”, disable everything. You can leave some of the ones on the left active, but make sure you’ve disabled all of the ones not selected here:
  2. Under Playback, enable “Auto-load subtitles”:
  3. Under Subtitles, make sure “Allow animation when buffering” is enabled, and “Maximum texture resolution” is set to “Desktop”:
  4. Under Output, choose “madVR” as renderer: Note: If you skipped madVR, or you’re experiencing lagging, frame drops or poor performance in general, set this to “EVR Custom Pres.”, “Haali Renderer” or “VMR-9 (renderless)” instead – try them in that order until you find one that works.
  5. Make sure the LAV Video is selected as default decoder. If in doubt, go to external filters, choose “Add Filter”, select LAV Video Decoder and switch it to “Prefer”:
  6. After making the above changes, restart MPC-HC and play back any file. You should notice the madVR icon in the system tray. Right click this to access the settings:

    Once inside, disable the “fullscreen exclusive mode” under Rendering -> General Settings. I recommend leaving this off unless you are having playback problems, because it prevents you from taking screenshots and makes the transition to fullscreen very ugly (It also messes up MPC-HC’s interface):

Step Three: Confirmation:

  1. Play back a Hi10P file and use Ctrl+J to enter the OSD: (If it doesn’t show up or looks completely different, doublecheck output configuration)

    Correct

    Incorrect

  2. Finally, check the “Filters” list (in the right click menu of MPC-HC during playback) and confirm that LAV Video is being used:

Troubleshooting:

  • If you don’t see subtitles after adding madVR as prefer, update your version of MPC-HC to at least build 3520 (which is still beta)! Alternatively, don’t add it as prefer and remove / de-prioritize the conflicting filters instead (example with ffdshow is shown above)
  • If you still don’t see it, double check to see that you have the 32-bit version of MPC-HC and not the 64-bit version
  • Creating Direct3D device failed (8876086c): Go to your output configuration and change the video renderer from madVR to something like EVR Custom Pres
  • Slow performance, frame drops, lagging: See the line above
  • If you’re having trouble taking screenshots, keep in mind that the best way to take screenshots from madVR is pressing PrintScreen on your keyboard, then pasting it to an external editing program like mspaint
  • Should you have any remaining problems, don’t hesitate to contact the author over IRC: #coalgirls on irc.rizon.net

 

(Bonus/Optional) Adding ffdshow:

Adding ffdshow will allow you to use its audio decoder (for filters + a more customizable mixer), as well as using it for formats other than AVC1 (H.264), VC1 and MPEG-2. Especially for older 480p and worse content (which isn’t likely to be encoded in AVC1), you can use the ffdshow deblocking or debanding filters to attempt to improve image quality this way.

  1. Install the latest ffdshow-tryouts
  2. Open ffdshow’s settings dialog, under “DirectShow control” set the merit to normal: (To get here, just go to Start -> All Programs -> ffdshow -> Video decoder configuration)
  3. Double check Step Three to make sure ffdshow doesn’t touch your H.264 video

Enjoy Anime!

Feedback and disclaimer:

If something is terribly wrong here or needs to be updated (even if it’s just a typo), leave a comment below and I’ll do my best to get back to you. You can also contact the author directly.

All content here is provided as-is with no actuary or implied warranties or guarantees of bodily, mental or otherworldly safety. If you don’t like the fact that every sentence is full of links, blame MediaWiki.

Guide originally inspired by Ryuumaru. All content based on nand’s original research and Google. All text and images are in public domain, except for the background video content on the OSD screenshots, which belongs to the owner of Bakemonogatari.

No credit needs to be given when copying any content in this post in whole or in part, but a link back would still be beneficial since this post is guaranteed to be updated constantly and reflects the latest developments in decoding / media playback.