모니터에 어떻게 정보를 표시 할 수 있는걸까?

발생

예전부터 궁금했다 그래픽스가 어쩌고 점, 선, 면이 어쩌고 픽셀이 어쩌고 근데 근본적으로 모니터에 어떤 명령을 내려야 정보들이 표시되는지 너무 의문이었다.

그래서 알아보았다.

모니터의 구조

모니터는 크게 다음과 같은 주요 부분으로 이루어져 있다.

  1. 입력부 (Input Section)
    • 컴퓨터나 콘솔 등 외부 장치로부터 영상 신호를 받는 부분이다.
    • HDMI, DisplayPort, DVI, VGA 등의 포트가 여기에 해당한다.
  2. 제어 회로부 (Control Board / Main Board)
    • 입력된 영상 신호를 처리해 화면에 맞는 형식으로 변환한다.
    • 화면 밝기, 색상, 해상도, 전원 등을 제어하는 마이크로컨트롤러와 영상 처리 칩셋이 포함되어 있다.
  3. 전원부 (Power Board)
    • 교류(AC) 전원을 받아 직류(DC)로 변환하여 각 회로에 전력을 공급한다.
  4. 표시장치부 (Display Panel)
    • 실제로 눈에 보이는 화면 부분이다.
    • LED, OLED, LCD + 백라이트 등 다양한 방식이 존재한다.

출력 단계

난 LED 패널을 기준으로 설명을 진행하겠다.

1. 데이터 준비 - CPU

CPU가 프로그램에서 필요한 화면 정보를 계산한다.
어떤 요소가 어디에 위치하고 어떤 색으로 보여야 하는지를 구조화 되도록 연산 하는 단계

2. 화면 생성 - GPU

CPU가 만든 화면 구조를 바탕으로 실제로 3D 그래픽, 텍스쳐, 밝기, 색상, 조명 등을 계산하고 프레임으로 만든다.

이를 렌더링(Rendering) 이라고 한다.

GPU는 만들어진 한장의 이미지인 프레임을 프레임 버퍼(Frame Buffer)에 저장한다. 프레임 버퍼는 VRAM에 존재하며 현재 화면에 표시될 픽셀 정보를 담고 있다.

예를 들어 1920x1080 해상도라면 200만 개가 넘는 픽셀 정보가 프레임 버퍼에 저장 되는것이다.

3. 영상 신호 변환 - GPU

GPU는 프레임 버퍼에 저장된 디지털 영상 데이터를 영상 신호로 변환한다.

이때 모니터가 사용하는 케이블에 따라 신호 형식이 달라진다.

  • HDMI / DisplayPort / DVI → 디지털 신호
  • VGA(아날로그) → 디지털을 아날로그로 변환(DAC: Digital-to-Analog Converter 사용)

변환된 신호는 그래픽 카드의 출력 포트를 통해 케이블로 전송된다.

이때 함께 전송되는 정보는 아래의 내용들을 포함한다.

  • 각 픽셀의 색상 데이터 (RGB 값)
  • 동기 신호 (Sync = 화면을 언제 새로 그릴지 알려주는 신호)
  • 오디오 신호 (HDMI, Display Port 등에서)
  • EDID(모니터의 해상도, 주사율 정보)

4. 모니터 제어보드 - 제어 회로 (Scaler Board)

  1. 그래픽 카드에서 온 디지털 영상 신호를 수신한다.
  2. 해상도, 주사율 등을 맞춰서 패널이 이해할 수 있는 데이터 포맷으로 변환한다(스케일링).
  3. TCON(Timing Controller) 칩으로 데이터를 전달.
    • TCON은 각 픽셀을 언제, 어떻게 켤지”를 제어하는 칩이다.

5. 출력

TCON에서 전달된 데이터를 통해 패널은 각 픽셀에 특정 조작을 하여 각 픽셀에 색상을 지정한다.

이후 LED의 경우 백라이트를 통해 픽셀이 발광하여 우리는 모니터에 프로그램들이 만들어낸 화면 정보를 볼 수 있는것이다.

결론

구조는 CPU가 실제 그림은 GPU가 그리고 보여주는건 모니터가 하는 과정으로 축약하여 설명 할 수 있을거 같다.

오랫동안 궁금했던 내용을 이제야 알아보게 됐지만 답답함이 확실히 없어졌다. 이제 그래픽스 관련 설명을 들을 때 이해가 더 잘될거 같다.

Day-42


tech