High 10 Profile (Hi10P), also known as 10-bit, is the newest standard for fansubbed and encoded releases.
What is Hi10P?
In really basic terms, more data is used to define color which means there is less banding for a smaller file size. It's an H.264 profile which uses 10 bits of information to represent color. It's a huge improvement because there is less file size, which in the long run saves bandwidth.
- Significantly higher compression ratios resulting in vastly decreased file sizes. In return, a huge amount of bandwidth is saved.
- Far more information is preserved from the original, removing such issues as banding and poor detail in dark scenes.
- Less things for the encoder to worry about.
- Slower decoding and encoding.
- No support for DXVA or CUDA as of writing.
- Slight compatibility issues with older devices during playback.
How NOT to play back Hi10P content
- CoreAVC in CUDA mode, DXVA and LAV CUVID, since no graphics cards support 10-bit decoding
- 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)
- However, not using VSFilter means that anamorphic releases which compensate for the stretching (e.g. 704x480 DVD releases) may give broken signs typesetting and stretched-looking subs. Two branches of VSfilter (threaded-vsfilter and xy-vsfilter) will handle these releases correctly, and they also support 10-bit input and output, meaning you don't dither using ffdshow or LAV. These two branches are still in development though , and may exhibit bugs.
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.
As of CCCP version 2011-11-11, CCCP included LAV filters as an alternative to ffdshow-tryouts.
Step Zero: Prerequisites
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
- 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). The 64-bit version is incompatible with madVR. It is however, possible for the 64-bit version to function when the 64-bit LAV filters are installed.
- Install the LAV Filters. These are necessary for decoding video and audio. You need to select the Splitter as well.
- 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
- 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: Image
- Under Playback, enable “Auto-load subtitles”: Image
- Under Subtitles, make sure “Allow animation when buffering” is enabled, and “Maximum texture resolution” is set to “Desktop”: Image
- 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.” or “VMR-9 (renderless)” instead – try them in that order until you find one that works. Image
- 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”: Image
- 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): Image
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)
- 2. Finally, check the “Filters” list (in the right click menu of MPC-HC during playback) and confirm that LAV Video is being used:
(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.
- Install the latest ffdshow-tryouts
- 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)
- Double check Step Three to make sure ffdshow doesn’t touch your H.264 video