Kodi DSPlayer – DirectShow Player for Windows
Common Video Source Specifications

Sources: DVD, Blu-ray, UHD Blu-ray, HDTV, 4K UHD HDR TV.

Quick Definition of Additive RGB Color Model | Quick Definition of Y'CbCr - Luminance and Chrominance - Encoding

Detailed Definitions of Hue, Value (Luminance) and Saturation

DVD:
  • Resolution: 720 x 480 (NTSC) -> 720 x 576 (PAL)
  • Frame rate: 29.97 fps (NTSC) / 25 fps (PAL)
  • Signal Type: interlaced
  • Color Space: Y'CbCr Limited (16-235)
  • Codec: MPEG-2 (H.262), MPEG-1
  • Chroma Subsampling: 4:2:0
  • Bit depth: 8-bits (per color)
  • Primaries: BT.601 (EBU/PAL/SMPTE-C)
  • Peak Luminance: 100 nits (SDR gamma)

Blu-ray:
  • Resolution: 1920 x 1080
  • Frame rate: 23.976 fps -> 24 fps
  • Signal Type: progressive
  • Color Space: Y'CbCr Limited (16-235)
  • Codec: MPEG-4 AVC (H.264), MPEG-2 (H.262), VC-1
  • Chroma Subsampling: 4:2:0
  • Bit depth: 8-bits (per color)
  • Primaries: BT.709
  • Peak Luminance: 100 nits (SDR gamma)
  • Other Features: MPEG4-MVC 3D

UHD Blu-ray:
  • Resolution: 3840 x 2160
  • Frame rate: 23.976 fps -> 60 fps
  • Signal Type: progressive
  • Color Space: Y'CbCr Limited (64-940)
  • Codec: HEVC (H.265)
  • Chroma Subsampling: 4:2:0
  • Bit depth: 10-bits (per color)
  • Primaries: DCI-P3 -> BT.2020
  • Peak Luminance: 1,000 -> 10,000 nits (HDR PQ)
  • Other Features: High Dynamic Range (HDR10, HDR10+ & Dolby Vision)

HDTV:
  • Resolution: 1280 x 720p / 1920 x 1080i
  • Frame rate: 29.97 fps -> 59.94 fps (NTSC) / 25 fps -> 50 fps (PAL)
  • Signal Type: progressive or interlaced
  • Color Space: Y'CbCr Limited (16-235)
  • Codec: MPEG-4 AVC (H.264), MPEG-2 (H.262), VC-1
  • Chroma Subsampling: 4:2:0
  • Bit depth: 8-bits (per color)
  • Primaries: BT.709
  • Peak Luminance: 100 nits (SDR gamma)

4K UHD HDR TV:
  • Resolution: 3840 x 2160
  • Frame rate: 29.97 fps -> 59.94 fps (NTSC) / 25 fps -> 50 fps (PAL)
  • Signal Type: progressive
  • Color Space: Y'CbCr Limited (64-940)
  • Codec: HEVC (H.265)
  • Chroma Subsampling: 4:2:0
  • Bit depth: 10-bits (per color)
  • Primaries: DCI-P3 -> BT.2020
  • Peak Luminance: 1,000 -> 10,000 nits (Hybrid Log Gamma & HDR PQ)
  • Other Features: High Dynamic Range (HLG, HDR10 & Dolby Vision)

Source Legend

Resolution: Total number of pixels: width x height. Short-form uses the vertical resolution (e.g 1080p, 2160p).

Image

Frame rate: The source frame frequency in frames per second. An interlaced source is measured in fields per second, as interlaced video displays each frame as two half-frames. The frame rate is equal to half the field rate (e.g., 60i = 30 fps).

The frame rate of a video must be converted to match the refresh rate of the display (e.g., 23.976 fps = 23.976 Hz). The source frame rate may be telecined (interpolated), duplicated, sped up (PAL speedup) or slowed down to match the display refresh rate. Displays in North American (NTSC) and European (PAL) countries employ different native refresh rates. Standard media in those countries is mastered with frame rates to match NTSC displays with a 59.94 Hz native refresh rate or PAL displays with a 50 Hz native refresh rate.  

Image

Signal Type: The method of displaying an image. Interlaced sources store images as odd and even horizontal lines or fields. The display draws the odd lines in one pass and then the even. Progressive images are shown in a single pass, where every line is drawn in succession. Interlacing was originally designed for cathode ray tube (CRT) televisions.

Interlacing is still used today in many HDTV broadcasts to reduce transmitted bandwidth. Interlaced sources must be deinterlaced to be shown on progressive scan displays. While progressive signals require more bandwidth, they produce fewer artifacts, offer higher vertical resolution and remove the need to deinterlace at the player or display level.

Image

Color Space: The method of describing a set of colors. RGB is a computer color space that uses a full range or limited range of RGB values. YCbCr is a video color space that can also represent a limited range or full range of RGB values. In most applications, RGB is full range (0-255 at 8-bits) and YCbCr is limited range (16-235 at 8-bits).

Image

Codec: The compression algorithm used to encode the video source. As a general rule, DVD codecs are less efficient than Blu-ray codecs; UHD codecs are more efficient than Blu-ray codecs.

Video is commonly captured or converted from camera sensors into four formats: Raw, Log, RGB or YCbCr. In YCbCr or RGB, each color channel is defined by a fixed sample rate and bit depth, not unlike audio sampling. The sample rate is expressed in thousands of samples per second. The CbCr channels are sampled at a lower rate than the Y channel. Each sample is assigned a bit depth of 8-bits, 10-bits or 12-bits that represents the number of color shades per YCbCr or RGB color channel, and the average of all samples for each pixel becomes the digital Y'CbCr or R'G'B pixel value. This is uncompressed HD video and not what is seen in the final video. A codec (e.g., HEVC) is used to reduce the size of the uncompressed video by selectively removing redundant pixels across groups of similar frames. The video decoder reconstructs the missing Y'CbCr pixels to give a complete set of pixel values to the video renderer. The amount of pixel data removed is defined by the bitrate of the encoder.

Image

Chroma Subsampling: The method of reducing the amount of information in the chroma (CbCr) channel of a Y'CbCr source. This is used to reduce data transmission rates or required data storage.

The luma channel (Y') carries the full resolution (4:x:x) while the chroma layer is reduced in one or both dimensions. This compromise takes advantage of the human visual system's lower acuity for color differences than for luminance. The most commonly used chroma subsampling type is 4:2:0.

Chroma upscaling can be used to return the chroma layer to the resolution of the luma layer. Most displays convert all subsampling types to 4:2:2 or 4:2:0 or convert subsampled inputs directly to RGB. RGB displayed with chroma subsampling shares neighboring chroma pixels with Y values missing Cb and Cr pixels that has the effect of lowering chroma resolution by blurring certain chroma planes.

Image

Bit Depth: The number of bits per channel (RGB) used to represent a color gamut. An 8-bit source uses 256 color shades per RGB channel. A 10-bit source uses 1,024 color shades per RGB channel. The bit depth is represented by a gradient consisting of individual steps between each color shade that cover the entire color gamut volume. Increasing the number of color values makes gradients appear smoother and more detailed by creating finer transitions between color shades.

Image

Primaries: The maximum saturation of each primary color: red, green and blue. This represents a triangle to form a color gamut. Each color gamut allows for different ranges of red, green and blue as well as secondary colors cyan, magenta and yellow. These primaries are used as the base to create all other colors. The least saturated colors are located towards the middle of the gamut near white (D65) and the most saturated colors are located along the gamut edges.

As the gamut becomes larger, the bit depth used to represent it should also increase, but color gamuts can be encoded with any number of bits. Not all colors are highly-saturated, so a larger gamut does not imply all colors will be more saturated, as only the furthest points of the gamut increase the available saturations for each primary color. 

Image

Peak Luminance: The brightness range used to master content. Standard dynamic range (SDR) content such SMPTE-C and BT.709 uses a peak luminance of 100 nits. A display that is brighter can extend this range, but as brightness increases, the output will only become increasingly distorted and overall contrast remains unchanged. One nit can be considered equivalent to one lit candle. High dynamic range (HDR) content uses a brightness range from 0 to 10,000 nits — with most HDR content topping out at 1,000 to 4,000 nits. 

Related to peak luminance is the Electro-Optical Transfer Function (EOTF) or gamma. RGB values are linear, regular color integers. R'G'B' are non-linear, gamma corrected color values. Gamma correction is designed to map each bit to a color value (0-255) that tells the display how much voltage is required to produce a prescribed amount of light or luminance. Standard RGB values, on the other hand, do not map directly to the brightness of standard consumer displays because a monitor's power output does not directly correlate to its perceived brightness; 50% voltage from a monitor does not equal 50% perceived brightness. Proper gamma to grayscale tracking ensures each step (0-255) represents a discrete change in brightness to the viewer. Gamma is a relative standard offering a choice of several tone curves with the added ability to increase or decrease the brightness of the 100 nit source master by stretching it at the end display.

While a standard pure power curve is sufficient for SD/HD color gamuts, an UHD/HDR gamut needs a transfer function suitable for a much larger range of luminance values. This new transfer function is defined as SMPTE 2084 Perceptual Quantizer (PQ), which replaces gamma for HDR10 and Dolby Vision sources.

Unlike gamma, PQ is a fixed tone curve that defines specific code values to each luminance level. The majority of the bits are distributed towards the darker portions of the curve with fewer code values assigned to brightness peaks to mimic our eye's greater sensitivity to dark detail versus bright detail across a larger spectrum of luminance. The PQ EOTF is not designed to be increased in brightness to account for ambient light in a room like gamma. Instead, the display is asked to clip or tone map values too bright for the display at the top of the curve and display all other mastered values 1:1 at the low end of the curve. 

Some approximate PQ code values for a 10-bit (64-940) RGB source:
  • HDR ST.2084 100 Nits =  White Point Clipping at 519 
  • HDR ST.2084 400 Nits = White Point Clipping at 668 
  • HDR ST.2084 1000 Nits = White Point Clipping at 769 
  • HDR ST.2084 2000 Nits = White Point Clipping at 847 
  • HDR ST.2084 4000 Nits (Dolby Pulsar) = White Point Clipping at 924

Clipping at the display level is rarely done in favor applying a tone mapping curve against the PQ curve. The majority of tone mapping algorithms will compress the entire range into the available luminance of the display (e.g., 4,000 nits peak white -> 700 nits peak white). Lower code values tend to remain the same with reasonably bright displays, while others are adjusted relative to each other.

Hybrid Log Gamma (HLG) is another standard HDR format that bears more resemblance to SDR. Jointly developed by UK broadcaster the BBC and Japanese broadcaster NHK, HLG is aimed at HDR TV broadcasts because it allows both SDR and HDR signals to be sent in the same stream. What differentiates HLG from PQ is that it uses a combination of a standard SDR gamma curve and a logarithmic curve that contains the extra brightness information for HDR. Both of these curves scale with the brightness of the display; therefore, there is no tone mapping or clipping like PQ. Reference (SDR) white is defined as 75% of the input signal. Because the HDR logarithmic curve is compressed, this will scale differently depending on the brightness of the display. With a 1,000 nit display, reference (diffuse) white would be rendered at around 175 nits. The HLG standard is a compromise solution to deliver HDR content without requiring a separate SDR capture. HLG can handle a brightness range up to 5,000 nits with no needed metadata beyond the information supplied in the gamma and logarithmic curves.

Image

Any display should be calibrated to show standard consumer media accurately by adjusting its primary colors to match its native gamut. It is also important to have an accurate grayscale and transfer function curve suitable for the viewing room. A correct grayscale should show a perfect balance of red, green and blue from 0 to peak white at D6500 (6500 Kelvins), the white point that represents the temperature of white light at mid-day that falls towards the middle of a CIE xy chromaticity diagram.

The (xy) coordinates of a chromaticity diagram map out the hue (h) and saturation (s) of all colors in a gamut independent of its luminance. This forms a triangle with red, green and blue occupying each corner and white in the middle. When luminance (Y) is added to xy, 3D color volume is created (xyY), which best approximates the way colors are represented by a consumer display device.

Most digital displays offer individual controls for each of these qualities: tint (hue), color (saturation), primary colors (RGB), brightness (black), contrast (white) and backlight (luminance).

xyY Color Space:
Image

In motion, the video renderer converts the frame rate of the video to the desktop refresh rate (e.g., 24 fps -> 60 Hz). Or the GPU refresh rate is changed to match the source frame cadence (e.g., 24 fps -> 24 Hz). This process can also involve upscaling or downscaling the input pixel count to match the resolution of the display (e.g., 1920 x 1080p -> 3840 x 2160p).

24 fps Film Played at 48 Hz, 60 Hz, 72 Hz and 120 Hz:
Image

Lossless vs. Lossy Conversions

Video processing conversions can be divided into two types: lossless and lossy. Lossless conversions retain the same information as the input values. Lossy conversions will alter the source values or lose some of the original information.

Lossless
A conversion from YCbCr 4:2:0 -> YCbCr 4:2:0 can be lossless if the video player handles the conversion correctly. Going from YCbCr 4:2:0 -> 4:4:4 -> 4:2:0 is also lossless; you just remove the pixels you added. 

Lossy
Conversions from YCbCr 4:2:0 -> YCbCr 4:2:2, or YCbCr 4:2:0 -> YCbCr 4:4:4 -> RGB are lossy. The original information is permanently altered or lost.

Lossy conversions should be carried out at a higher bit depth than the source (typically, 16-bit - 32-bit) and dithered down to the output bit depth. This will create more accurate conversions and allow for the possibility of retaining some information from the higher bit depth to the actual output bit depth. 

For example, upsampling 4:2:0 chroma to 4:4:4 in a 0-255, 8-bit color space may involve an averaging of neighboring chroma pixels such as 62 and 63. The resulting value, 62.5, does not create a valid 0-255, 8-bit integer, which necessitates the need to round to 62 or 63

If the averaged value was instead converted to a 32-bit floating point number (62.5/255) it equals: 0.245098. That is a lot more precise than 62.5, and allows for the resulting rounding error to be distributed to neighboring pixels to eliminate the possibility of introducing any color banding not found in the original source values. This type of rounding works well for any interpolated pixels, especially for a PC where the input and output color spaces (YCbCr & RGB) do not match.

HDMI 2.0 4K Output Limitations

HDMI 2.0 bandwidth is limited for carrying 4K UHD media through HDMI cables. This makes configuring a PC for 4K UHD 60 fps output less simple than choosing the matching bit depth, RGB/4:4:4 output and the highest desktop frame rate. Bandwidth restrictions require a reduction in one or more of those variables for proper transmission. HDMI 2.0a/b is restricted to 18.0 Gbits/sec; HDMI 1.4 provides up to 10.2 Gbits/sec.

HDMI 2.0a/b (maximum output - 3840 x 2160 - 18.0 Gbps):
  • 10-bit RGB/YCbCr 4:4:4 at 30 Hz
  • 12-bit YCbCr 4:2:2 at 60 Hz
  • 8-bit RGB/YCbCr 4:4:4 at 60 Hz

HDMI 1.4 (maximum output - 3840 x 2160 - 10.2 Gbps):
  • 8-bit RGB/YCbCr 4:4:4 at 30 Hz
  • 12-bit YCbCr 4:2:2 at 30 Hz

It is a viable option to output 10-bit 4K UHD content at 8-bit RGB at 60 Hz. The color gamut is not compressed. Rather, additional dithering is added to the image to simulate the higher bit depth. The conversion from 10-bits to 8-bits should be carried out by the video renderer and not the graphics driver.

The visible dithering noise will be lower on a 4K UHD display compared to a 1080p display. Unless there is an underlying need for 10-bit output above 30 Hz, it is best to use 8-bit RGB, as this will preserve the chroma upscaling done by the video renderer and avoid an unnecessary color conversion from R'G'B' to Y'CbCr.

HDMI 2.0a/b UHD Support:
Image
Black fonts indicate formats supported by HDMI 1.4.
HDMI 2.0 supports 4:2:2 at 4K60.


*Cable lengths of 15' or greater require the use of an active HDMI cable to support 18.0 Gbits/s signals.
Reply


Messages In This Thread
Lockup on STOP issue resolved! - by MKANET - 2015-04-11, 21:59
RE: Kodi DSPlayer – DirectShow Player for Windows - by Warner306 - 2015-04-30, 21:37
RE: 4G aware patch - by MagikMark - 2015-09-08, 03:27
Alt-F4 no longer quits - by JeffA - 2015-10-31, 20:38
H265 playback - by rew88 - 2017-11-04, 00:41
RE: H265 playback - by ashlar - 2017-11-04, 16:21
RE: H265 playback - by rew88 - 2017-11-05, 01:34
RE: H265 playback - by ashlar - 2017-11-05, 16:48
RE: H265 playback - by rew88 - 2017-11-05, 23:08
RE: H265 playback - by ashlar - 2017-11-06, 12:00
Leia 18 - by terpsarlington - 2017-11-21, 03:51
RE: Leia 18 - by spencerjford - 2017-11-21, 06:24
Display Modes / Refresh Rates - by goofer69 - 2019-09-20, 00:19
RE: Display Modes / Refresh Rates - by ashlar - 2019-09-20, 00:39
RE: Display Modes / Refresh Rates - by ashlar - 2019-09-20, 19:35
DSPlayer 23.810 to 23.976 - by Runakanta - 2018-05-09, 03:24
RE: DSPlayer 23.810 to 23.976 - by Warner306 - 2018-05-10, 01:32
Logout Mark Read Team Forum Stats Members Help
Kodi DSPlayer – DirectShow Player for Windows47