PtBi is a free monitoring application for Blackmagic Design Intensity
or compatible capture hardware.
It's main points of interests compared to similar - and often more fully featured - software are minimal display delay, a
GPU-supported adaptive Lanczos scaling/resampling mode and optional post-processing anti-aliasing modes.
Recent versions have added more customization and image processing options, full range RGB support and audio handling,
including DTS 5.1 and DD 5.1 surround sound decoding.
I developed PtBi to play PS3 and Xbox360 games on my various PC displays, since all existing software seemed to introduce too much lag
(on top of the processing delay inherent in the hardware/driver stack) and I wanted to try different methods of increasing image quality via post-processing.
If you find PtBi useful, please consider donating:
If you encounter any problems running PtBi, make certain that your
Blackmagic drivers are up to date.
If you're still having problems, send me an email and include the files "ptbi.log" and "error.log" generated in the PtBi folder.
It also helps to include "PtBi" in the title to be sure to make it past the spam filters.
The PtBi source is now available on GitHub.
- Version 5.x:
- SMAA added as another AA option
- Dolby Digital 5.1 surround sound decoding
- Fixed shader compilation on latest NV drivers
- Added 1:N scaling option (e.g. 1:1 in fullscreen)
- Improved compatibility with AMD GPUs
- Version 4.x:
- Full audio support
- Stereo to Quadrophonic expansion
- DTS 5.1 surround sound decoding
- Support for many more video modes, including: PAL, NTSC and various 1080p modes
- Configurable aspect ratio (4:3 and 16:9)
- Dropped the console window, added logging to files and an application icon. Almost respectable!
- Version 3.x:
- Introduces two new anti-aliasing modes, PXAA and TPXAA.
- Adds "startup.ini", which allows you to run any commands that can be bound to keys automatically at startup (useful for e.g. enabling vsync)
- Adds (switchable) support for full range RGB mode (via HDMI)
- Various image processing filters
- Version 2.x:
- Switches from GLUT to GLFW, enabling improved fullscreen and hotkey handling.
- Completely changes frame queuing and threading setup, trading ~0.2ms in latency for greatly increased fluidity
- Adds status text messages (to report mode changes etc.)
- Configurable hotkeys (keys.ini)
- Low display delay: From the point in time where the program first receives the current frame from the driver until
the point where it is decoded, on the GPU, and ready to display it takes around 2 ms on my system. With the most complex scaling
algorithm (adaptive Lanczos) this increases to 4 ms. Enabling FXAA only adds 1.2 ms.
This is achieved by directly (with asynchronous multithreading) uploading the encoded frame to the GPU and performing all decoding, processing
and scaling on there using fragment programs.
- Adaptive Lanczos scaling: This scaling method samples a local neighbourhood of the image, and varies the sharpness of the
Lanczos weighting curve depending on the amount of steep variation in this neighbourhood.
Here is a small comparison to illustrate the effect:
Left to right: bilinear, lanczos and adaptive filtering.
For this sample with low-frequency local components, a very "sharp"
sample weighting is chosen by the adaptive algorithm. The result looks very similar to non-adaptive sharp Lanczos scaling.
Left to right: bilinear, lanczos and adaptive filtering.
In this example, the non-adaptive resampling shows clear oversharpening artifacts, particularly around the text. The adaptive filter
mitigates these problems while maintaining overall image sharpness
- Optional AA modes: FXAA (developed by Nvidia) is a post-processing filter that aims to reduce aliasing (staircase) artifacts.
Drawbacks are a blurring effect that results in a loss of perceived detail -- this can be mitigated by using Lanczos sharpening -- and the fact that, as a post-processing step, it cannot distinguish between UI elements and 3D rendered polygons. This leads to some distortion of UI elements.
Left: no AA, Right: FXAA + adaptive sharpening.
In this example, you see part of a screenshot from Everybody's Golf (PS3).
As you can see, FXAA is very effective in removing aliasing artifacts, and the subtle sharpening prevents loss of detail.
Starting with version 3, PtBi introduced additional AA modes designed to combat GUI distortions, including PXAA and TPXAA. More information about these can be found here.
Starting with version 5, SMAA1x support was also added.
- Additional features:
- Disables Windows screen saver and power management while running
- Maintains aspect ratio regardless of window size
- Exact framerate matching (with capable GPU and output device):
this means that 59.94 Hz will be matched exactly to 59.94 Hz (or 119.88!) Hz instead of 60.
- Full audio handling, including DTS5.1 decoding, Dolby Digital 5.1 decoding and stereo expansion
- What are the controls?
Starting with version 2.x, all controls are configurable in keys.ini. What follows is just a very limited overview, look into the file for a full list.
F for toggling fullscreen.
P takes a screen capture (stored in the "captures" directory).
S switches between the available scaling modes.
A switches between the available AA options.
V toggles vsync.
M mutes/unmutes audio.
- What command line options are available?
-mode=[MODE] sets the video mode. Currently supported values for [MODE] are 720p60, 720p50, 720p5994 (the default), PAL, NTSC, 1080p60, 1080p5994, 1080p50, 1080p30 and 1080p25
-disable-audio disables all audio processing
- Will you implement video capture?
No, not unless there is a lot of interest. PtBi works with Fraps, MSI Afterburner and other general tools, and that's what I use if I want to capture video.
- Will you implement feature X?
Maybe. Send me an email! (Or even donate)
- Can you make PtBi compatible with hardware Y?
Probably, if I had access to Y, and if it offers a usable API. Make that happen and I'll do my best.
©2010-2014 Peter Thoman