February 2019 update: Found two great posts on this topic over at Medium. The author is much more knowledgeable than I am on how various operating systems handle the scaling of different types of objects. Check them out!
Shop for laptops at Best Buy today and you will find the market inundated with laptops with 1920*1080 i.e. Full-HD/FHD/1080p screen resolution displays, from 11.6-inch basic models all the way up to 17.3-inch gaming machines. On the internet, there are countless examples of a fine laptop roasted by users simply because its screen resolution is lower than 1080p.
The 1080p resolution is great for entertainment, e.g. watching a YouTube video full screen, because it is the standard format in which multimedia content is produced nowadays. If the screen resolution is smaller than 1080p, it cannot accurately display 1080p content. So I understand why 1080p resolution is chosen for multimedia-oriented laptops regardless of screen size.
However, 1080p is a problem when it comes to laptops for work, or, in general, any use case that involves a lot of text. Examples include web browsing (news, Wikipedia, Coursera, etc.), reading, emails, text editing (Microsoft Word), spreadsheet (Microsoft Excel), presentation (Microsoft PowerPoint) and many more. These are all common use cases.
Why is displaying text on 1080p screens a problem?
- At a given distance between the our eyes and the screen, there is only a limited range of text size (height and width) that is comfortable for our eyes to read,
- The software that adjusts text size is not perfect (and probably never will be).
Let’s say that in your usual seating position, your eyes are roughly 2 feet from the screen, and at that distance, you can read 1/8″ tall text comfortably. For people with better eyesight, that may be 1/10″ tall text. For elderly people, that may be 1/4″. It certainly varies from person to person, but the point is there is a common value that works for most users.
What does resolution have to do with all of this? On your screen, that 1/8″ text consists of a group of pixels. Exactly how many pixels are needed to produce a 1/8″ tall letter “A” depends on the size of each pixel. This is where resolution comes in – given the same 1080p resolution, the size of a pixel changes with the size of the screen. For example, a 17.3″ 1080p screen will have larger pixels than a 11.6″ 1080p screen. Consequently, a 17.3″ 1080p needs fewer pixels to display a 1/8″ tall letter “A” than a 11.6″ 1080p screen.
The software running on laptops is aware of this problem, and adjusts how many pixels it uses to display the same text accordingly so that the text is appropriately sized for the user to read comfortably on all sizes of laptop screens. This process is called “scaling”. Let’s work through at a simple example of how scaling works.
Take Apple’s 13-inch MacBook Pro (MBP) for example. The old 13-inch MBP has a resolution of 1280*800. The new 13-inch MBP has a resolution of 2560*1600, i.e. twice as many pixels in each dimension. Because the screen size is unchanged at 13.3″, each pixel on the new MBP is half as tall and half as wide as on the old MBP. This means that, to display text of the same height, the new MBP needs twice as many pixels vertically as the old MBP, or 200% scaling. If a 1/8″ tall letter “A” needs 8 pixels vertically on the old MBP, the new MBP would now use 16 pixels.
Performing 200% scaling is straightforward – you can just repeat the content of each pixel on the old screen twice. But what if the new MBP had used a 1080p screen, like the majority of today’s new laptops do?
The 1920*1080 resolution has about 50% more pixels in each dimension than the 1280*800 resolution. So, the content of each pixel on the old screen should now be displayed on 1.5 pixels on the new screen.
The problem? There is no such thing as 0.5 pixel. A pixel simply cannot split itself into halves and display two things. And, as you might have recognized, any non-integer scaling ratio will have this problem. The result of non-integer scaling is blurry text in certain applications, and it is a well-known problem. Microsoft alone has at least 8 documents regarding this issue (see for example #1 #2 #3).
The 1920*1080 resolution is particularly problematic in this regard. We have seen that 1080p resolution will result in 150% scaling on 13-inch laptops, but it does not stop there. With Windows 10, 1080p screens between 12- and 14-inch will all default to 150% scaling, and 1080p 15.6-inch screens will default to 125% scaling. All are non-integers. While you could manually enforce an integer scaling ratio, doing so would either result in text being too small and illegible, or text being too large and only a limited range of content being visible on the screen.
The 1080p problem mostly resides among Windows laptops. Apple makes much more sensible resolution choices in this regard. The 12-inch MacBook, and 13- and 15-inch MacBook Pros can all use 200% scaling. (No longer true with recent macOS updates. macOS now default to less than 200% scaling, probably in order to increase usable screen real estate – Feb 2019)
What confuses me the most is that in the 13-inch segment, Windows partners seem to be content with offering 1080p resolution when the Apple counterpart is using 2560*1600. However, in the 15-inch segment, high-end Windows laptops have widely adopted 4k (3840*2160) resolution, which will default to non-integer 250% scaling. That means even though 4k seems superior to Apple’s 2880*1800 on paper, it could suffer from blurry text issues in practice. 4k does sound good in marketing, though.