Monitor Cable Bandwidth

Executive Summary

The following table show the maximum supported pixel clock for various interface
protocols, when using 24 bits per pixel:

Interface

Max Clock (MHz)

VGA (theory)

388

VGA (reality)

150

DVI (single link)

165

DVI (dual link)

>330

HDMI v1.0 - v1.2

165

HDMI v1.3 - v1.4

340

HDMI v2.0

600

DisplayPort RBR

216

DisplayPort HBR

360

DisplayPort HBR2

720

DisplayPort HBR3

1080

And this table lists the pixel clock required for a particular video mode. They were derived by filling in a particular video mode
in the Custom Timing generator of the Nvidia Control panel. It's possible that AMD GPUs may choose slighty different timings, but
they should mostly match.

Resolution

Rate

Clock

640 x 480

60

25.175

800 x 600

60

36.000

1024 x 768

60

65.000

1280 x 1024

60

108.000

1440 x 900

60

88.750

1600 x 1200

60

162.000

1920 x 1200

60

154.000

2560 x 1440

60

234.590

2560 x 1440

85

336.375

2560 x 1440

120

483.120

2560 x 1440

144

586.586

2560 x 1440

165

678.100

3440 x 1440

60

312.787

3440 x 1440

85

448.500

3440 x 1440

100

531.520

3440 x 1440

120

644.160

3840 x 2160

60

533.250

3840 x 2160

120

1075.804

Introduction

Let's have an in-depth look the amount of pixels that can be pushed through a cable, and how that translates into resolutions
and refresh rates.

When a GPU sends images to a monitor, it always has the following components:
actual pixels
blanking information
* extra data

The pixels can be in various formats, but in the PC world, they are most commonly 24-bit RGB.

The blanking information marks the start of an image and the start of a new line.

The extra data can be different things. Some common ones are:

information from the GPU to the monitor about the format in which images are transmitted.

audio

decryption information when DRM (almost always HDCP) is being used

This kind of extra data isn't always there, some cable protocol don't even have a way of doing so, and the list isn't exhaustive either.

Combined, these components take their share of the total amount of bits that are transmitted, and they will determine the maximum amount
of pixels and frames that can be transmitted per second.

Video Timings

Pixel Clock

An important concept is the pixel clock. This is determines the gross amount of pixels can be send per second over the cable. Why 'gross'? Because
the net amount of pixels that will be displayed will always be lower, due to the extra information that's being sent.

Let's give an example: say we want to send a 4K image at 60Hz from the GPU to the monitor.

Without any overhead, we could live with a pixel clock 497.6 MHz, but now we need to take into account horizontal and vertical blanking times.

VESA defines a set of timings for various resolutions and refresh rates. On such set is called 'CVT-RB' or Coordinated Video Timings - Reduced
Blanking. Let's use that one, since you can download a spreadsheet for free that calculates the timings for you.

According to the spreadsheet, 4K@60Hz needs a horizontal blanking time of 80 pixels per line.
That increases total horizontal resolution from 3860 to 3940. Similarly, CVT-RB uses a vertical blanking time of 62 lines, for a total
number of lines of 2222.

The total amount of 'gross' pixels per image is now 3940 x 2222 = 8,754,680. At 60Hz, that's 525,280,800 pixels per second.

We need a pixel clock of 525.3 MHz to transfer 4K images at 60Hz. That's a 5% overhead over just sending out visible pixels alone.

The pixel clock is one of the defining parameters that determines whether or not a particular resolution/refresh rate can be
transmitted over a particular video cable.

Note that the pixel clock doesn't necessarily correspond to the highest rate at which pixels are transferred per wire: pixels may be transmitted
in parallel on the same cable. For example, a pixel clock of 200 MHz with images being transfered over Dual Link-DVI would result in a
physical clock of only 100 MHz.

Horizontal Scan Rate

The horizontal scan rate is the frequency at which horizontal lines are being transmitted (or displayed). It can easily be calculated once
you know the refresh rate and the gross number of horizontal lines in the image.

From the 4K example above, it's 60Hz * 2222 lines/image = 133.32 kHz.

The horizontal scan time is the time to transmit just one line. In our example, it's 1/133.32kHz = 7.5 uS.

Different Cable Formats

We established above that the height of pixel clock is the determining factor to judge whether a particular interface/cable can be used
to transmit images to the GPU.

Let's now go over the various standard to see what's possible and what is not.

VGA

In old-school VGA mode, images are transmitted in analog format. This means that, in theory, you could send out pixels at almost any
pixel clock as long as you're able to whiggle the signal fast enough.

In practice, there are limits at which you can do this: when signals travel in a cable, different frequencies will travel at different
speed. This effect of this gets worse for higher frequencies. This will deform the signal into some unrecognizable mess.

According to Wikipedia, the highest timings for VGA are 2048 x 1536 @ 85Hz. With standard CVT timings, that results in a pixel clock
of 388.5 MHz, which is insane. I've seen 1080p at 60Hz over VGA (DMT pixel clock of 148.5 MHz), and that one already started to have to
visible issues of edges that weren't quite sharp and some ghosting here and there.

So for practical purposes, let's say that a pixel clock of 150 MHz is close to the practical limit of VGA.

DVI-I

DVI introduced the era of high pixel clock digital signalling, but it also maintained some backward compatibilty with VGA as well.

That backward compatibilty was achieved by have a completely different set of wires in the cable, and pins in the connector, that
supported the original VGA signalling. This is called DVI-I. The most modern GPUs don't support that version anymore, but if you want to
know more, it's really just VGA.

DVI-D

DVI-D is purely digital.

Contrary to VGA, data is transferred over differential pairs: instead of having a single wire that transfers, say,
red, it now has 2 wires, but one wire is exactly the opposite of the other. This has the benefit of being largely immune
to so called common-mode noise: when some external source injects noise onto both wires, this noise can easily be removed
by subtracting 2 values from eachother and the noise will cancel out.

It uses 3 differential pairs for data, R,G, and B, that run at 10 times the rate of a 4th pair, which contains the pixel clock. The DVI-D
specification declares a maximum pixel clock of 165 MHz.

A display mode of 1080p @ 60Hz (DMT timings) with a pixel clock of 148.5 MHz fits in just fine.

Since the data wires run at 10 times the clock, a pixel clock of 165 MHz means that the rate of the data wires in DVI-D is 1.65 Gbps.

Now we know that pixels are 24 bits per pixel or 8 bits per color component. Why, then, is there a factor or 10 instead of 8?

That's because DVI uses TMDS encoding: 8 bits are transformed into 10 bits. This has a number of benefits that improve the transmission
characteristics over the wire:

Balanced amount of zeros and ones on the wires. This ensures that the average voltage on the wires is 0.

Extra room for special 10-bit codes: this makes it possible to encode vertical and horizontal sync over the data wires. There are also
some codes that make it possible for the receiver to synchronize the start of a 10-bit word in an endless stream of bits.

For pixel clocks that are exceed 165 MHz, there's dual-link DVI.

DL-DVI

Dual-Link DVI, adds a 3 additional differential pairs over which to transfer RGB. The clock link is shared between the 2 sets, so now you have
7 instead of 4 wires to transfer image data. The original set of regular DVI is used to transfer odd pixels, the extra pair is used to transfer
even pixels.

The DVI specification says that DL-DVI must be used for pixel clocks that go above 165 MHz. A common mistake is to assume that DL-DVI is
thus limited to a pixel clock of 330 MHz, since there are now simply 2 pixels in parallel. This is not the case: there is no such
limitation and sources and sinks are allowed to jack up the pixel clock to whatever rate they want.

Note that even the Wikipedia on DL-DVI makes this mistake!

That doesn't mean that there aren't any limitations: older GPUs weren't designed to transfer pixels at pixel rates that were higher than
330 MHz, so that automatically became the limit.

A good example is 2560 x 1440 @ 120 Hz: this is a video mode that is routinely achieved by some direct drive monitors over DL-DVI. When using
CVT2-RB timings, this requires a clock speed of 483 MHz, far higher than incorrect 330 MHz limit.

HDMI

HDMI is built on top of DVI-D. They use the same low level signalling and there is considerable amount of compatibility between the two
formats.

One way in which they differ, is in the maximum pixel clock speed. While, initially, HDMI has the same 165 MHz limit as single link DVI, this
was later increased to 340 MHz with the introduction of HDMI version 1.3, and 600 MHz for HDMI version 2.0.

A little known fact is that the HDMI specification also defines a dual-link HDMI version, but if actual implementations exist, they are very
rare indeed, since they have never been observed in the field.

DisplayPort

For DVI and HDMI, a physical clock travels alongside the data signals and it's either the pixel clock or half the pixel clock (for DL-DVI.) When
a video mode is selected that requires a particular pixel clock, this pixel clock is reflected in the data rate on the cable.

DisplayPort does something entirely different: it has number of fixed rates at which data can travel on the cable. When a video mode is
selected that doesn't need the amount of bandwidth of a particular physical clock, empty data words are inserted instead.

There are 4 data wires that all run at the same physical clock. There is no separate clock line: the clock speed to be used is communicated
by the source to the sink via a seperate communication channel.