로딩로딩중

HiDPI

최근 수정 시각:

1. 개요2. 역사와 원리3. 어원4. Microsoft Windows의 HiDPI 지원
4.1. HiDPI를 지원하는 주요 소프트웨어 목록4.2. HiDPI를 제대로 지원하지 못하는 소프트웨어의 해결책4.3. 기타
5. macOS의 HiDPI 지원

1. 개요[편집]

Microsoft Windows 기반 컴퓨터 디스플레이의 몇 배 더 많아진 픽셀 수만큼 몇 배로 더 선명하게 보여주는 표시 방식.

2. 역사와 원리[편집]

2000년대까지는 수많은 디지털 기기들이 화면에 대한 큰 욕심을 내지 않았다. 그저 '글씨를 보여 줄 수만 있는' 최소한의 낮은 해상도를 사용해왔던 것이다. 초창기 피처폰과 같은 경우도, 176*220(QCIF+)이나 240*320(QVGA) 등의 낮은 해상도에서 문자를 사용자에게 보여주어서 편의적으로도, 심미적으로도 심각하게 좋지 못한 사용자 경험을 남겼다.[1]

2017년 기준, PC 모니터에 가장 많이 쓰이는 FHD(1920*1080) 해상도는 플래그쉽 스마트폰의 주력 해상도 WQHD(2560x1440)[2]보다 더 낮아졌다. 예외도 있긴 하지만 일반적인 스마트폰보다 일반적인 모니터가 화면에 들어간 점의 개수가 더 줄어들었다. 모니터는 큼직하고, 스마트폰은 손 안에 들어갈 정도로 작은 데도 말이다. 1인치의 길이에 들어가는 픽셀의 개수PPI(Pixels Per Inch)라는 단위로 표기하는데, 당연히 PPI 값은 스마트폰이 모니터보다 월등히 높다. 픽셀이 화면에 훨씬 빽빽히 모여 있으므로, 스마트폰에서는 모니터보다 훨씬 더 선명하게 문자를 나타낼 수 있다.

피쳐폰에서 스마트폰으로 넘어오는 과도기에는 스마트폰도 PPI 및 해상도가 지금보다는 훨씬 낮았고, 특히 480*800 해상도를 가진 4인치대 디스플레이[3]가 많이 쓰였었다. 그러다 2010년대 들어, PPI에 따른 화면의 선명함이 디스플레이의 중요한 미덕으로 떠오르기 시작했다.

이와 같은 스마트폰 디스플레이의 PPI 부문의 품질 경쟁을 촉발한 것은 애플이 2010년에 출시한 iPhone 4였다. 이 때 쓰인 레티나 디스플레이라는 용어는 300 PPI 이상의 화면을 가리키는 말이었고, 실제로 그 선명도는 326 PPI에 달해 다른 스마트폰과 비교가 되지 않는 깔끔하고 선명한 디스플레이의 아름다움을 보여주었다. 이를 기점으로 출시되는 대다수의 스마트폰이 300PPI는 '당연히' 넘겨야 하는 기준선으로 삼기 시작했고, 갤럭시 S7의 경우에는 557 PPI라는 엄청난 선명도를 가진 디스플레이를 담고 나왔다. 참고로, 레티나 디스플레이라는 용어의 정의는 다소 모호해진 상태이다.

이런 고밀도 디스플레이를 컴퓨터 계열에서 보급한 것 역시 애플이었다.[4] 맥북에도 3K급(2880x1800) 레티나 디스플레이를 탑재하면서 처음으로 컴퓨터 화면을 선명하고 보기 좋게 만드는 데에 성공한 것이다. 운영체제와 기기를 동시에 제작하는 애플이었기에 가능한 일이었고, 이 부분에서는 애플이 몇 년씩이나 우위를 점하고 있다. 아이맥에는 무려 5K(5120x2880) 해상도를 탑재하면서 일체형 컴퓨터 계열에서도 레티나 디스플레이가 탑재되었다.

그러나 윈도우 PC, 특히 윈도우 7 및 이전 버전에서는 아직도 초창기 피처폰 수준과 비슷한 선명도로 화면을 띄우고 있다. 물론 컴퓨터 디스플레이는 스마트폰보다 먼 곳에서 보기 때문에 선명도가 좀 떨어지더라도 큰 지장은 없지만, 시야 거리를 고려하더라도 컴퓨터가 스마트폰에 비할 때 해상도가 너무 낮은 것은 사실이다. 이러한 원인 중에는 PC의 많은 기능이 스마트폰으로 내려오면서 PC에 소홀했던 점도 있다.

윈도우가 운영체제 단에서 삼고 있는 기준은 96 PPI밖에 되지 않는다. 이것은 윈도우 7 또는 이전 버전을 애플 MacBook Pro에 설치할 경우 실감할 수 있다. 작업 표시줄 등 여러가지가 굉장히 작게 보인다. 하지만 윈도우 8.1 이후 본격적으로 고해상도 디스플레이를 위한 HiDPI를 지원하기 시작하면서, 상술된 문제들이 점차 해결되고 있다.

3. 어원[편집]

High DPI를 줄인 말로, High와 발음이 거의 같은 Hi로 바꾸고 DPI를 붙여서 HiDPI라는 단어로 압축하였다.

통상적으로 PPI는 Pixel이라는 단어가 들어가는 만큼 화면에서 쓰이고, DPI(Dots Per Inch)는 인쇄물에서 쓰이는 단위다. 그러나 워낙 비슷한 개념이다 보니 혼동해서 사용하는 경우가 상당히 많았고, 그것이 그대로 반영되어 지금은 HiDPI라는 용어로 굳어졌다.

물론 정확히 구분해서 쓰면 HiPPI라고 해야 되겠지만 이미 이쪽으로 굳어졌으며, 마이크로소프트에서도 공식적으로 HiDPI라는 용어를 사용한다.

4. Microsoft Windows의 HiDPI 지원[편집]

윈도우는 레거시 프로그램과 하위 호환을 어떻게든 끌고 가려는 끈질긴 운영체제다. 출시된 지 20년이 지난 옛날 게임인 스타크래프트가 최신 윈도우로 아직도 돌아갈 수 있는 이유도 바로 호환성을 유지하려고 부단히 노력한 덕택이다.[5] 그러나 옛날 프로그램을 돌리는 것은 해낼지라도, 고해상도의 고밀도 디스플레이에서 적절한 배율로 늘려 제대로 된 크기로 나타내는 것에는 어려움이 있다. HiDPI 지원이 뛰어난 macOS의 경우에는 커널을 여러 번 갈아엎으면서 레거시 프로그램의 호환성을 끊어버려(...) HiDPI를 제대로 지원하는 프로그램만 남았기 때문에 문제가 없는 것이다.

화면 속에서, 원래는 a*b 크기인 오브젝트를 na*nb 크기로 키우는 것을 '스케일링(Scaling)'이라고 한다. 윈도우의 기본값은 100%(96 PPI)이며, 화면 크기보다 해상도가 높은 경우에 화면에 표시되는 프로그램 및 아이콘 등의 오브젝트들이 작게 표시되는데, 이를 n배로 확대시켜 보기 편하게 하는 것이 바로 HiDPI이다. 참고로 n에는 정수[6]가 들어가야만 계단이나 자글거림이 발생하지 않으며, 정수가 아닌 실수[7]가 들어가면 계단이나 자글거림이 생기기 때문에 보기에 영 좋지 않게 된다.

아래 이미지는 윈도우 8.1에서 200%(192 PPI) 배율을 적용한 모습이다. 우클릭해서 열어보면, 모든 글자들이 일반적인 100% 상황보다 더 부드럽고 자연스러워 보임을 알 수 있다.[8] 윈도우 10에서는 화면 상의 요소들이 더 자연스러워졌다.

파일:200%DPI.png

소위 '프로그램이 깨져 보인다'는 부작용이 일어나기도 하는데, 아주 먼 옛날 프로그램은 의외로 크게 문제를 보이지 않고 오히려 10년 전 정도의 근래의 프로그램에서 자주 발생한다. 아주 먼 옛날 프로그램은 이런 고해상도를 염두에 두지 않고 개발했기 때문에 OS에서 강제로 확대하면 끝이지만, HiDPI 지원의 과도기적인 근래의 프로그램의 경우 HiDPI가 어중간하게 지원하여서 오히려 이상하게 표시된다. 그러는 경우에 버튼이 어딘가로 튀어나가 있거나 글자가 상자를 뚫고 나오기도 한다. 비교적 최신 소프트웨어들에서는 HiDPI 관련 문제가 적은 편이다.

아래는 UHD(3840×2160) 초고해상도로 구동되는 Windows 10의 200% 스케일링을 사용한 모습이다. 우클릭으로 이미지를 새 탭에서 열어 보자.

파일:200%DPI2.png

윈도우로 작동하는 프로그램은 HiDPI를 지원하는 걸 세 가지로 분류할 수 있다. 'HiDPI를 제대로 지원하는 것', '어중간한 것', '아예 지원하지 못하는 것'. 이 가운데에서 어중간하게 지원하는 것이 보통 문제가 된다.

HiDPI를 제대로 지원하는 경우 프로그램은 윈도우의 배율 설정을 제대로 알고 표시하기 때문에 문제가 발생하지 않는다. 아예 지원하지 않는 프로그램의 경우 윈도우에서 배율만큼 크게 표시한다. 단, 강제로 확대해서 표시하는 것이기 때문에 글자가 흐려진다. 참고로 macOS도 HiDPI를 지원하지 않는 앱의 경우 강제로 확대해서 표시된다.

여기서 크게 문제가 되는 어중간하게 지원하는 경우이며, 위에서 설명했지만 사람들이 자주 사용하는 근래의 프로그램이 대개 해당된다. '확대가 안 되는 것', '뭔가 제대로 꼬인 것'으로 다시 분류할 수 있다. 어중간하게 지원하는 프로그램의 경우 후술할 호환성 설정법으로 강제 확대할 수 있다.

확대가 안 되는 것은 배율설정을 무시하고 무조건 픽셀에 1:1 매칭되어 표시되는 프로그램으로, 시스템 비율이 200%(192 DPI)로 맞춰져 있더라도 프로그램은 무조건 100%(96 DPI)로 표시되기 때문에 정상적인 사용을 못한다.

뭔가 제대로 꼬인 것 같은 프로그램은 개발툴[9]이 HiDPI를 제대로 지원하지 않았거나[10], 지원은 하지만 같이 사용한 서드파티 툴이 지원이 안 돼서 섞여 있거나, 개발자가 무시하고 개발하면 발생한다. 현재로서는 시간이 흘러 윈도우에서도 HiDPI 앱이 대세가 되기를 기다리는 수밖에 없다.

HiDPI를 제대로 지원하는 프로그램의 경우 실제 해상도가 더 높기에 더 깔끔하고 자연스럽게 표시된다. 아직은 HiDPI를 사용할 만한 초고해상도 디스플레이가 점유율을 차지한 지 얼마 되지 않았지만, 시간이 지나면서 초고해상도 화면을 가진 기기들이 눈에 띄게 늘어나고 있다. 삼성 노트북 9 프로델 XPS 15가 대표적이다. 와콤신티크 최신판, 모바일스튜디오 프로에서 4K를 지원하기 시작했다.

Windows 10부터는 HiDPI 지원을 위하는 Awareness 단계가 나누어져 있다.

  • 지원하지 않음: 모든 환경에서 96DPI로 고정된다. 이 환경에서는 비 정수배 스케일링 환경에서 흐릿하게 보이는 효과를 가져온다. Windows 8.1까지는 온전히 시스템의 스케일에 의존하게 된다. Windows 10부터는 이 방식의 어플리케이션은 비트맵 스케일링을 한다.

  • DPI Upscale: Windows 10 1703 RS2 부터 지원된 방식. 기본적으로 100% (96DPI)로 고정되나, GDI 부분을 내부적으로 스케일링하여 렌더링한다. DPI Awareness가 없는 애플리케이션에 효과가 있으나, OpenGL과 같은 외부 뷰포트 등의 컴포넌트를 사용하는 경우 올바르게 스케일링되지 않는다.

  • DPI Aware: Windows 8.1부터 지원된 방식. 이 방식은 얼핏 보면 HiDPI를 잘 지원하는 것으로 보이나, 역으로 저 DPI환경 (e.g: 4K 200% -> FHD 100%)으로 창을 이동하는 경우 내부적으로는 스케일링되어 있는 것을 다운스케일함으로써 흐릿하게 보인다.

  • Per-Monitor: 하위 창의 이벤트 처리에 따른 V1과 RS2 부터 지원된 V2가 있으며, 이 방식은 창이 있는 모니터별로 창의 스케일링이 변경될 수 있음을 알린다. 즉 4K 200%에서는 192 DPI로 스케일링되고 표시되며, FHD 100%에서는 96 DPI로 다시 렌더링되어서 가장 이상적인 환경을 볼 수 있다. Qt가 이 방식을 지원하는 것으로 보이지만, 위의 각 모니터간 DPI 변경에 따른 이벤트 부분 구현이 완벽하지 않아, 윈도우 핸들 등이 스케일링되지 않거나 200% 렌더링되어 있는 상태 그대로 이동되는 문제점이 있다.

4.1. HiDPI를 지원하는 주요 소프트웨어 목록[편집]


추가바람

4.2. HiDPI를 제대로 지원하지 못하는 소프트웨어의 해결책[편집]

실행하려는 앱 파일을 우클릭한 뒤, 속성의 호환성 탭에서 "높은 DPI 동작을 재정의합니다."를 체크하고 '시스템'[21] 또는 '시스템(고급)'[22][23]을 선택하면 된다.

윈도우 10 빌드 15063 이전의 구 버전은 이 방법을 사용해야 한다.

4.3. 기타[편집]

클리어타입 대체용으로 만들어진 글꼴 렌더링 프로그램인 MacType이 있는데, HiDPI 환경에서 사용하면 글꼴이 상당히 매끄러워져서 보기가 편안해진다.

5. macOS의 HiDPI 지원[편집]

파일:나무위키상세내용.png   자세한 내용은 Retina Display 문서를 참고하십시오.

[1] 이 당시에는 폰이라는 개념이 단지 전화, 문자만 주고받는 물건이었기에 240*320(QVGA)도 고해상도로 취급되었다. 1920*1080(FHD) 해상도의 스마트폰이 널리 보급되고 2560*1440(WQHD) 해상도의 스마트폰도 자주 쓰이는 2017년 현재 관점에서는 이해하기 어렵다.[2] QHD(Quad HD)라고도 표기하나, qHD(quarter FHD, 960*540)과 혼동할 여지가 있기 때문에 이 표기를 선호하는 경우가 많다.[3] 갤럭시 S(4.0"), 갤럭시 S II(4.3"), 베가 레이서(4.3") 등.[4] 바이오P 등 몇 차례의 시도가 있었지만 여러가지 요소가 겹치면서 실패하거나 전문가용 제품으로 극소수만 팔리던 실정이었다.[5] 다만 스타크래프트는 1.18 패치 이후로 최신 윈도우를 '공식으로' 지원하게 되었다.[6] x2, x3, x4 등.[7] x1.5, x2.5, x3.5 등.[8] 참고로 사진을 보면 MacType이 설치되어 있는 것을 알 수 있는데, 이 프로그램을 사용하면 글자를 계단 현상 없이 매끄럽게 표시할 수 있다. 해당 문서 참고.[9] 2017년 기준 가장 최신인 Visual Studio 2015도 HiDPI 관련해서 문제가 발생하는 경우가 있다. WPF에 단순 버튼만 나열된 테스트 프로그램임에도 불구하고 제작한 프로그램이 UI 관련해서 문제가 발생했다.[10] 의외로 Windows XP에도 HiDPI 설정이 있었다. 제대로 작동하지도 않는 과도기적 지원이었지만, 그때의 설정도 같이 지원하려고 하다 보니 더욱 문제가 되는 것.[11] CS6까지는 지원하지 않는다.[12] Adobe Illustrator CC는 Per-monitor awareness가 지원되지만 컨텍스트 메뉴가 제대로 스케일링되지 않는다.[13] Adobe Photoshop CC은 Per-monitor awareness가 지원되지만 스케일링 배율을 100%, 200% 두 가지만 지원한다.[14] 참고로 Windows 문자표는 기본 프로그램임에도 HiDPI가 적용되지 않아서 와장창 깨져버린다. Windows 95부터 있었던 오래된 프로그램인 탓이 큰 듯.[15] 2007까지는 비지원하고, 2010은 제한적으로 지원하지만 완벽한 지원은 아니다.[16] 스킨을 강제로 확대하는 방식이기 때문에 완벽한 지원은 아니다.[17] 초창기에 나온 Windows Store App의 경우 제대로 지원하지 않는 경우도 존재했지만, Windows 10의 출시 이후 해결되었다.[18] 2014 오리지널까지는 지원 자체가 되지 않았으며, 2014 VP와 NEO는 지원하기는 하나 메뉴 아이콘이 틀어지고 글꼴이 굴림체로 나오기 때문에 HiDPI 환경에서 상당한 괴리감이 느껴진다. 2018에서는 글꼴이 변경되고 메뉴 아이콘도 틀어지지 않게 개선되었지만, 여전히 Microsoft Office보다는 뭔가 어색함이 느껴진다.[19] 200%를 넘는 배율을 지원하지 못하는 반쪽짜리 지원이다. 예로서, 4K 노트북 등으로는 제대로 사용할 수 없다.[20] 다음팟 시절 버전은 거의 비율만 맞춰주는 정도였기 때문에 흐릿하게 보이는 경우가 많았으나 카카오TV 이후로 업데이트된 버전으로는 제대로 지원된다.[21] 단순 확대라서 흐려지는 건 어쩔 수 없다. 근본적으로 지원이 안 되는 걸 OS에서 하려면 아무래도 한계가 있으니..[22] '시스템'과 차이가 있을 수도 있고 없을 수도 있다. 효과가 있는 경우는 폰트가 뚜렷해진다. 이게 기본값인 걸로는 대표적으로 '장치 관리자'가 있다.[23] 여기서 고급은 영어 원문으로 enhanced이다. "고급"은 오역이고 "향상된"이 의미상 맞겠지만 최근 MS의 번역 수준은..