Chapter 14

타이밍 컨트롤러와 인터페이스

GPU가 만든 한 장의 프레임은 어떻게 수백만 개의 픽셀 전압으로 바뀔까? 이 장에서는 영상 데이터가 AP에서 출발해 직렬 링크를 건너 타이밍 컨트롤러(TCON)에 도착하고, 소스·게이트 드라이버를 거쳐 패널에 그려지기까지의 경로를 따라간다. 픽셀 클록과 블랭킹으로 대역폭을 계산하고, 링크가 모자랄 때 쓰는 압축(DSC)과 비트가 모자랄 때 쓰는 디더링(FRC), 패널의 결함을 숨기는 디머라 보정, 그리고 화면이 멈춰 있을 때 전력을 아끼는 자체 리프레시까지 시스템 엔지니어의 시각으로 정리한다.

디스플레이 시스템의 데이터 경로

스마트폰이든 TV든 디스플레이 시스템은 크게 다섯 블록으로 나뉜다. ① AP/SoC(Application Processor)의 GPU가 프레임을 렌더링해 DRAM의 프레임 버퍼에 쓰고, 디스플레이 엔진이 여러 레이어를 합성한다. ② 합성된 픽셀은 디스플레이 인터페이스(MIPI DSI, eDP, HDMI, DisplayPort)를 통해 고속 직렬 신호로 전송된다. ③ 패널 쪽의 타이밍 컨트롤러(TCON, Timing Controller)가 이를 받아 영상 처리(디머라, 오버드라이브, 감마, 디더)를 하고 패널 구동 타이밍을 만든다. ④ 소스 드라이버가 디지털 계조를 아날로그 전압으로 바꿔 데이터선에 싣고, 게이트 드라이버가 한 행씩 TFT를 켠다(5장). ⑤ 마지막으로 패널의 각 픽셀이 그 전압을 저장해 빛을 낸다.

스마트폰 OLED에서는 TCON, 소스 드라이버, 프레임 메모리(GRAM)가 칩 하나로 합쳐진 DDI(Display Driver IC)가 패널 유리 위(COG)나 플렉서블 기판 위(COP/COF)에 붙어 있다. 반면 대형 TV는 TCON 보드가 따로 있고, 수십 개의 소스 드라이버 IC가 패널 가장자리를 따라 줄지어 붙는다. 같은 원리지만 규모가 다르다.

AP / SoC GPU 렌더링 디스플레이 엔진 프레임 버퍼(DRAM) 직렬 링크 DSI·eDP HDMI·DP TCON (DDI) 수신 PHY · DSC 디코더 영상 처리디머라 · 오버드라이브 · 감마 · 디더 타이밍 생성 · GRAM 프레임/라인 메모리 소스 드라이버 (DAC) 게이트 드라이버 픽셀 어레이 선택된 행(분홍)이 충전 중 계조 데이터 STV·CLK PMIC: AVDD · VGH/VGL · ELVDD/ELVSS · 감마 기준 전압 렌더 → 합성 → 스캔아웃
그림 14-1. 디스플레이 시스템 블록 다이어그램. AP의 프레임 버퍼에서 읽힌 픽셀은 직렬 링크를 거쳐 TCON(스마트폰은 DDI)에 들어가고, 영상 처리 후 소스 드라이버가 계조 전압을, 게이트 드라이버가 행 선택 펄스를 만든다. PMIC가 각종 구동 전압을 공급한다.

아래 시뮬레이터에서 한 프레임의 데이터가 블록을 하나씩 통과할 때 어떤 형태로, 얼마나 빠르게 흘러가는지 단계별로 따라가 보자. 제품 종류를 바꾸면 같은 경로라도 숫자의 규모가 크게 달라진다.

SIMULATOR

데이터 경로 스텝퍼 — 프레임 버퍼에서 픽셀까지

—
제품
단계 1 / 6
해상도 · 주사율—
원시 픽셀 데이터율—
이 단계의 속도—
1행 시간—
해볼 것: 스마트폰(2400행·120 Hz)과 4K TV(2160행·120 Hz)의 "게이트" 단계를 비교해 보자. 1행 시간은 3.4 µs 대 3.7 µs로 비슷하지만, TV의 데이터선은 수십 배 길고 무거워(RC가 큼) 같은 시간에 충전하기가 훨씬 어렵다. 링크 단계에서는 TV가 레인 16개를 쓰는 이유도 보인다. 수치는 대표적인 설계 예다.
왜 병렬이 아니라 직렬인가

예전 노트북은 24비트 RGB를 선 24개로 병렬 전송했다(TTL/CMOS RGB). 그런데 수백 MHz에서는 선마다 지연이 달라지는 스큐, 커넥터 핀 수, EMI 때문에 병렬 방식이 버티지 못한다. 그래서 몇 쌍의 차동 레인에 데이터를 몰아 수 Gbps로 보내는 직렬 링크가 표준이 되었다(4절).

비디오 타이밍: 액티브와 블랭킹

디스플레이 인터페이스는 CRT 시대의 래스터 주사(raster scan) 개념을 지금도 쓴다. 전자빔이 왼쪽에서 오른쪽으로 한 줄을 그린 뒤 다음 줄 처음으로 돌아가고(수평 귀선), 마지막 줄을 그린 뒤 화면 맨 위로 돌아가는(수직 귀선) 데 시간이 필요했다. 이 "아무것도 그리지 않는" 시간이 블랭킹(blanking)이다. 픽셀이 실제로 표시되는 영역은 액티브 영역(active area)이라 한다.

한 줄의 블랭킹은 세 부분으로 나뉜다. 액티브가 끝난 뒤의 프런트 포치(front porch), 동기 펄스 HSYNC, 그리고 다음 액티브가 시작하기 전의 백 포치(back porch). 수직 방향도 같은 구조로, 단위가 픽셀 대신 라인이다. 여기에 "지금 유효한 픽셀이 실려 있다"를 알리는 DE(Data Enable) 신호가 더해진다. LCD·OLED 패널은 빔이 없으니 귀선 시간이 물리적으로 필요하지 않지만, 블랭킹은 여전히 오디오·메타데이터 전송, 링크 동기화, 패널의 행 전환과 보상 동작(9장의 문턱전압 샘플링 등)에 쓰인다.

액티브 영역 H_active × V_active FP Sync BP FP Sync BP 수평 블랭킹 수직 블랭킹 DE HSYNC 한 라인 = H_total 픽셀 클록 VSYNC H_tot = H_a+FP+Sync+BP V_tot = V_a+FP+Sync+BP · DE=1 동안만 픽셀이 유효 · HSYNC: 라인 시작 기준 · VSYNC: 프레임 시작 기준 · 극성(+/−)은 규격마다 다름 1080p60 (CTA-861) H: 1920+88+44+148 = 2200 V: 1080+4+5+36 = 1125 2200×1125×60 = 148.5 MHz
그림 14-2. 래스터 프레임 맵. 한 프레임은 액티브 영역과 그 오른쪽·아래의 블랭킹으로 이루어진 \(H_\text{tot}\times V_\text{tot}\) 직사각형이다. 아래의 DE·HSYNC 파형은 한 라인 동안의 신호, 오른쪽 VSYNC는 한 프레임 동안의 신호를 같은 위치에 맞춰 그린 것이다(블랭킹 폭은 보기 쉽게 과장).

아래 시뮬레이터는 픽셀 클록을 수백만 배 느리게 돌려 "주사 위치"가 프레임 맵 위를 움직이는 모습을 보여 준다. 맵의 열은 아래 라인 파형과, 행은 오른쪽 프레임 파형과 정렬되어 있다. 빨간 점이 블랭킹을 지나는 동안 DE가 0으로 떨어지는 것을 확인하자.

SIMULATOR

래스터 스캔 & HSYNC/VSYNC/DE 타이밍 다이어그램

DEHSYNC / VSYNC프런트 포치백 포치
주사 위치 (x, y)—
현재 구간—
픽셀 클록—
수평 주파수 · 라인 시간—
블랭킹 비율—
VGA 타이밍은 CRT 시절 그대로라 블랭킹이 전체의 27%나 된다. CVT-RB(블랭킹 감소)로 바꾸면 수평 블랭킹이 280 → 160픽셀로 줄어 같은 1080p60인데 픽셀 클록이 148.5 → 138.5 MHz로 내려간다. 스마트폰 패널은 블랭킹을 극단적으로 줄인다.

픽셀 클록과 대역폭 계산

한 프레임의 모든 "슬롯"(액티브 + 블랭킹)을 매 프레임 한 번씩 지나야 하므로, 픽셀을 내보내는 속도인 픽셀 클록(pixel clock)은 다음과 같다.

$$ f_\text{pclk} = H_\text{tot}\times V_\text{tot}\times f_v, \qquad R_\text{data} = f_\text{pclk}\times \text{bpp}, \qquad \text{bpp} = \begin{cases} 3b & 4{:}4{:}4 \\ 2b & 4{:}2{:}2 \\ 1.5b & 4{:}2{:}0 \end{cases} $$
\(f_v\): 주사율(Hz), \(b\): 성분당 비트 심도, bpp: 픽셀당 비트. 4:2:2/4:2:0 (chroma subsampling)은 색차 성분을 가로(그리고 세로) 방향으로 절반만 보내는 방식이다.

블랭킹을 얼마나 넣느냐가 대역폭을 좌우한다. TV 방송 계열의 CTA-861 타이밍은 수평으로 약 14.6%, 수직으로 약 4%의 블랭킹을 둔다. CRT가 필요 없는 평판 디스플레이를 위해 VESA는 CVT-RB(Coordinated Video Timing – Reduced Blanking)를 정했다. 수평 블랭킹을 160픽셀(RBv2는 80픽셀)로 고정하고, 수직 블랭킹은 최소 460 µs만 확보한다.

$$ V_\text{blank} = \max\!\left(\left\lfloor \frac{460\ \mu\text{s}}{T_{H,\text{est}}}\right\rfloor + 1,\ V_\text{min}\right), \qquad T_{H,\text{est}} = \frac{1/f_v - 460\ \mu\text{s}}{V_\text{active}} $$
RBv1: \(H_\text{blank}=160\), \(V_\text{min}=14\) 라인. RBv2: \(H_\text{blank}=80\), \(V_\text{min}=15\) 라인. 460 µs는 원래 LCD 백라이트·패널 회로가 프레임 전환을 처리할 최소 시간으로 정해졌다.
포맷타이밍H_tot × V_tot픽셀 클록24 bpp 데이터율
640×480 @60VGA (DMT)800 × 52525.175 MHz0.60 Gbps
1920×1080 @60CTA-8612200 × 1125148.5 MHz3.56 Gbps
1920×1080 @60CVT-RB2080 × 1111138.5 MHz3.32 Gbps
3840×2160 @60CTA-8614400 × 2250594 MHz14.26 Gbps
3840×2160 @144CVT-RBv23920 × 2314≈1.31 GHz≈31.3 Gbps
7680×4320 @60CVT-RBv27760 × 4443≈2.07 GHz≈49.6 Gbps

계산된 데이터율을 링크의 유효 대역폭과 비교해야 한다. 각 인터페이스는 선로 위의 원시 비트율 중 일부를 인코딩·패킷 오버헤드로 쓰기 때문이다(4절). 예를 들어 HDMI 2.0의 18 Gbps는 TMDS 8b/10b 인코딩 후 14.4 Gbps만 영상에 쓸 수 있고, DP 1.4 HBR3 4레인의 32.4 Gbps는 25.92 Gbps가 된다.

SIMULATOR

픽셀 클록·대역폭 계산기와 인터페이스 비교

비트 심도 (성분당)
크로마
블랭킹
DSC 압축 (목표 bpp)
수용 가능부족필요 데이터율
H_tot × V_tot—
픽셀 클록—
bpp (전송)—
필요 데이터율—
DSI 레인당—
막대는 인코딩 오버헤드를 뺀 유효 대역폭이다(DSI D-PHY 4.5 Gbps/레인, C-PHY 3트리오 × 6 Gsps × 16/7비트, eDP·DP 1.4는 HBR3 4레인, DP 2.1은 UHBR20 4레인, HDMI 2.1은 FRL 48 Gbps 기준). 실제로는 패킷 헤더, FEC, 오디오 등으로 수 % 더 줄어든다. 해볼 것: 4K 144 Hz 10비트에서 DP 1.4는 부족하지만 DSC 10 bpp를 켜면 여유가 생긴다.
예제 — 스마트폰 1080×2400 @120 Hz

폰 패널은 블랭킹을 극단적으로 줄여 \(H_\text{tot}\approx1180,\ V_\text{tot}\approx2440\) 정도를 쓴다. \(f_\text{pclk}\approx1180\times2440\times120\approx346\) MHz, 24 bpp면 8.3 Gbps다. D-PHY 4레인이면 레인당 2.1 Gbps가 필요하다. DSC 8 bpp를 쓰면 2.8 Gbps로 줄어 레인 수를 줄이거나 낮은 클록으로 전력을 아낄 수 있다. 그래서 거의 모든 플래그십 폰이 DSC를 쓴다.

VRR과 블랭킹

가변 주사율(VRR, 11장)에서는 픽셀 클록과 \(H_\text{tot}\)을 고정한 채 수직 블랭킹(V front porch)만 늘려 주사율을 낮춘다. 144 Hz 모니터가 48 Hz로 내려가도 링크 속도는 그대로이고, 한 프레임이 끝난 뒤 다음 프레임이 준비될 때까지 블랭킹 라인이 계속 이어질 뿐이다.

고속 직렬 링크: 차동 신호와 인코딩

Gbps급 신호는 거의 모두 차동 신호(differential signaling)로 보낸다. 두 선(D+, D−)에 서로 반대인 신호를 싣고 수신단에서 그 차이만 본다. 외부 잡음은 두 선에 거의 똑같이 들어오므로(공통 모드) 빼면 사라지고, 두 선의 전류가 반대 방향이라 방사 EMI도 상쇄된다. 덕분에 스윙을 수백 mV로 작게 만들 수 있어 빠르고 전력이 적게 든다. 고전적인 LVDS(Low-Voltage Differential Signaling)는 3.5 mA 전류를 100 Ω 종단 저항에 흘려 ±350 mV, 공통 모드 1.2 V를 만든다.

TX 3.5 mA D+ D− 꼬임쌍 / 결합 마이크로스트립 Z_diff = 100 Ω 100 Ω +− RX: V(D+) − V(D−) 외부 잡음 단일 종단(각 선) 잡음 공통 차동 = D+ − D− 0 V 문턱 공통 잡음이 상쇄되어 깨끗 LVDS ±350 mV · mini-LVDS ±200 mV · D-PHY HS ±200 mV · DP ±200~600 mV(4단 스윙) · HDMI TMDS 800~1200 mV
그림 14-3. 차동 신호. 송신단 전류원이 극성을 바꿔 D+/D−로 흘리고, 수신단 100 Ω 종단 저항 양단의 전압 차를 비교기가 판정한다. 두 선에 똑같이 들어온 잡음(공통 모드)은 차를 구할 때 사라진다.
SIMULATOR

차동 vs 단일 종단 — 공통 모드 잡음과 스큐

D+D−차동 D+ − D−비트 오류
단일 종단 오류 비트—
차동 오류 비트—
스큐 / UI—
LVDS 모델: 스윙 ±175 mV(각 선), 공통 모드 1.2 V, 단일 종단 수신기는 1.2 V 고정 문턱으로 판정. 잡음을 키우면 단일 종단은 오류가 쏟아지지만 차동은 멀쩡하다. 그런데 쌍 내 스큐를 늘리면 공통 잡음 일부가 차동 성분으로 바뀌고(모드 변환), 천이 구간이 뭉개진다. PCB에서 D+/D− 길이를 수 mil 단위로 맞추는 이유다.

인코딩: 직류 균형과 클록 복원

직렬 링크에는 별도 클록 선이 없거나(DP, HDMI 2.1 FRL, V-by-One) 있어도 데이터와 위상이 어긋날 수 있다. 수신기의 CDR(Clock and Data Recovery)는 데이터의 천이(0→1, 1→0)에서 클록 위상을 맞추므로 같은 비트가 오래 이어지면 안 된다. 또 AC 결합 커패시터를 통과하려면 1과 0의 개수가 평균적으로 같아야(직류 균형) 한다. 이를 위해 라인 코딩을 쓴다.

8b/10bHDMI TMDS, DP 1.4, eDP 데이터 8비트 +2 효율 80% 16b/18bHDMI 2.1 FRL 16비트+2 효율 88.9% 128b/132bDP 2.x UHBR, USB4 128비트 (스크램블) 효율 97.0% 주황 = 오버헤드. 8b/10b는 런 길이 ≤ 5, 직류 균형을 코드표로 보장.
그림 14-4. 라인 코딩별 오버헤드. 8b/10b는 8비트마다 2비트를 더해 천이 밀도와 직류 균형을 보장하지만 20%를 잃는다. 128b/132b는 스크램블러로 통계적으로 천이를 만들고 4비트 헤더만 붙여 3%만 쓴다(대신 FEC로 오류를 보완).
$$ R_\text{eff} = N_\text{lane}\times R_\text{lane}\times\eta, \qquad \eta_{8b/10b}=0.8,\quad \eta_{16b/18b}=0.889,\quad \eta_{128b/132b}=0.970 $$
예: DP 1.4 HBR3 = 4 × 8.1 Gbps × 0.8 = 25.92 Gbps, DP 2.1 UHBR20 = 4 × 20 × 0.97 ≈ 77.6 Gbps, HDMI 2.1 = 4 × 12 × 0.889 ≈ 42.7 Gbps.

아이 다이어그램: 링크의 건강 진단서

수신 파형을 비트 주기(UI, Unit Interval)마다 잘라 겹쳐 그리면 눈 모양이 생긴다. 이것이 아이 다이어그램(eye diagram)이다. 눈의 세로 개구(eye height)는 잡음 여유, 가로 개구(eye width)는 타이밍 여유를 뜻한다. 눈을 닫는 주범은 셋이다. ① 채널(PCB, 케이블, 커넥터)의 대역 제한으로 앞 비트의 꼬리가 다음 비트를 침범하는 ISI(Inter-Symbol Interference), ② 천이 시점이 흔들리는 지터(jitter), ③ 진폭 잡음. 송신단 디엠퍼시스(de-emphasis)는 같은 비트가 반복될 때 진폭을 낮춰(상대적으로 천이를 강조) 채널의 고주파 손실을 미리 보상한다.

$$ Q = \frac{\mu_1-\mu_0}{\sigma_1+\sigma_0}, \qquad \text{BER}\approx\tfrac12\,\mathrm{erfc}\!\left(\frac{Q}{\sqrt2}\right), \qquad \text{BER}=10^{-12}\Leftrightarrow Q\approx7.0 $$
\(\mu_{1,0}\), \(\sigma_{1,0}\): 샘플링 시점의 '1'·'0' 레벨 평균과 표준편차. 디스플레이 링크는 보통 BER \(10^{-9}\)~\(10^{-12}\)를 요구한다(4K60 링크에서 \(10^{-12}\)이면 약 1분에 비트 하나 오류).
SIMULATOR

아이 다이어그램 — 대역폭·지터·잡음·디엠퍼시스

UI—
아이 높이 (μ±3σ)—
아이 폭—
Q · 추정 BER—
모델: PRBS7 NRZ ±200 mV, 1차 저역 통과 채널, 가우시안 지터·잡음. 해볼 것: ① 8.1 Gbps(HBR3)에서 대역폭을 2 GHz로 낮추면 ISI로 눈이 닫힌다. ② 이때 디엠퍼시스를 0.25(≈4.4 dB)로 올리면 눈이 다시 열린다. ③ 데이터율을 20 Gbps(UHBR20)로 올리면 같은 지터라도 UI 대비 비중이 커져 가로 개구가 급감한다. 점선 사각형은 μ±3σ로 정의한 내부 개구다.
SerDes와 등화

직렬화기/역직렬화기(SerDes)는 병렬 데이터를 고속 직렬로 바꾸는 회로다. 수신단에는 고주파를 키우는 CTLE(Continuous-Time Linear Equalizer)와 이미 판정한 비트로 ISI를 빼는 DFE(Decision Feedback Equalizer)가 들어 있고, DP·HDMI는 링크 트레이닝 단계에서 송신 스윙과 프리엠퍼시스 레벨을 수신기 피드백에 맞춰 자동으로 고른다. TV 내부의 V-by-One HS, TCON→소스 드라이버 구간의 USI-T·CEDS 같은 점대점 인터페이스도 같은 원리로 클록을 데이터에 내장한다.

MIPI DSI: 비디오 모드와 커맨드 모드

스마트폰·태블릿·워치·XR 기기는 거의 전부 MIPI Alliance의 DSI(Display Serial Interface)를 쓴다. DSI는 패킷 프로토콜이고 물리층으로 D-PHY 또는 C-PHY를 쓴다. DSI에는 두 가지 동작 방식이 있다.

비디오 모드 AP매 프레임 스캔아웃 연속 스트림 (60~120 프레임/s) DDI라인 버퍼만 패널 커맨드 모드 AP바뀔 때만 깨어남 부분 갱신 버스트 나머지는 LP(저전력) TE 신호 (쓰기 타이밍) DDI GRAM (1프레임) 자체 리프레시 패널
그림 14-5. DSI 비디오 모드와 커맨드 모드. 비디오 모드는 AP가 매 프레임 전체를 흘려보내고, 커맨드 모드는 DDI의 GRAM이 화면을 기억하고 있어 AP는 바뀐 사각형 영역만 가끔 써 넣는다. 패널 리프레시는 DDI가 스스로 한다.
SIMULATOR

비디오 모드 vs 커맨드 모드 — 링크 활동과 전력

DSI 동작 방식
화면 내용
HS 전송LP/유휴패널 리프레시AP 프레임 페치
평균 링크 데이터율—
HS 듀티—
AP 페치 / s—
링크+AP 전력(추정)—
가정: 1080×2400, 24 bpp, D-PHY 4레인 × 2.5 Gbps, HS 에너지 약 6 pJ/bit + HS 진입 고정 전력, AP 디스플레이 경로(DRAM 읽기 포함) 프레임당 약 1 mJ, GRAM 자체 리프레시 5 mW. 교육용 근사치다. 해볼 것: "시계·커서만"에서 비디오 모드 → 커맨드 모드로 바꾸면 링크와 AP 전력이 수십 분의 1로 준다. 동영상이면 차이가 거의 없다.

D-PHY와 C-PHY

D-PHY는 클록 레인 1개 + 데이터 레인 1~4개로 된, 소스 동기식 차동 링크다. 고속(HS) 모드에서는 ±200 mV 저스윙 차동으로 레인당 최대 2.5 Gbps(v1.2)~4.5 Gbps(v2.5), 저전력(LP) 모드에서는 1.2 V CMOS 단일 종단으로 수십 Mbps의 명령을 주고받는다. LP ↔ HS 전환 시퀀스(LP-11 → LP-01 → LP-00 → HS)가 있어 버스트 사이에는 LP로 쉬며 전력을 아낀다.

C-PHY는 선 3개(트리오)가 세 가지 전압 레벨을 돌아가며 갖는 방식이다. 세 선의 상태 조합으로 심볼마다 5가지 천이 중 하나를 고르므로 이론상 \(\log_2 5\approx2.32\)비트, 실제로는 16비트를 7심볼에 실어 2.28 비트/심볼을 보낸다. 클록이 심볼 천이에 내장되어 별도 클록 레인이 없다. 같은 핀 수(예: 9핀)로 D-PHY보다 대역폭이 크고, 고해상도 폰 패널에 많이 쓰인다.

D-PHY 데이터 레인 1.2V 0.2V LP-11 01 LP-00 HS 버스트 ±200 mV LP-11 클록 레인 + 데이터 1~4레인 (차동쌍) C-PHY 트리오 (A·B·C) H M L +x−y+z−x+y−z 한 시점에 세 선이 H·M·L을 하나씩 — 6가지 상태 매 심볼 천이 → 클록 내장, 2.28 bit/심볼
그림 14-6. D-PHY와 C-PHY. D-PHY는 1.2 V LP 상태에서 LP-01·LP-00 시퀀스를 거쳐 저스윙 HS 버스트로 들어가고, 끝나면 다시 LP-11로 돌아온다(분홍=Dp, 보라=Dn). C-PHY는 세 선이 세 레벨을 순환하며 매 심볼마다 반드시 상태가 바뀌어 클록을 따로 보낼 필요가 없다.
인터페이스주 용도물리층 / 코딩대표 최대 유효 대역폭
MIPI DSI-2 (D-PHY v2.5)폰·워치·XR 내부차동 4레인 + 클록, 코딩 없음(HS)4 × 4.5 = 18 Gbps
MIPI DSI-2 (C-PHY v2.0)고해상도 폰3선 트리오 × 3, 16b/7심볼≈ 41 Gbps
eDP 1.4b / 1.5노트북 내부HBR3 4레인, 8b/10b, PSR·DSC25.92 Gbps
HDMI 2.0 / 2.1TV·외부 모니터TMDS 8b/10b / FRL 16b/18b14.4 / 42.7 Gbps
DisplayPort 1.4 / 2.1PC 모니터HBR3 8b/10b / UHBR20 128b/132b25.92 / 77.6 Gbps
V-by-One HSTV SoC → TCON점대점 레인 × 8~16, 8b/10b레인당 ~3 Gbps
USI-T, CEDS, EPITCON → 소스 드라이버점대점, 클록 내장레인당 1~4 Gbps

DSC: 시각적 무손실 압축

해상도·주사율·비트 심도가 모두 오르면서 링크 대역폭이 영상 요구를 따라가지 못하게 되었다. VESA의 DSC(Display Stream Compression)는 이 간극을 메우는 실시간 경량 압축 규격이다. JPEG처럼 프레임 전체를 변환하지 않고, 몇 라인 분량의 메모리만으로 픽셀을 한 줄씩 예측·양자화·부호화해 지연이 수 라인(수 µs) 수준이다. 그리고 출력 비트율이 정확히 일정한 고정 bpp라 링크 용량에 맞춰 설계할 수 있다. 주관 평가에서 원본과 구별할 수 없는 수준을 시각적 무손실(visually lossless)이라 하며, DSC는 보통 3:1까지(예: 30 bpp → 10 bpp, 24 bpp → 8 bpp) 이를 만족한다.

픽셀RGB 30bpp 색 변환RGB→YCoCg-R 예측MMAP · BPICH(색 인덱스)잔차 = 실제 − 예측 양자화QP에 따라 엔트로피DSU-VLC 레이트버퍼 고정8~12bpp 레이트 제어: 버퍼가 차면 QP↑, 비면 QP↓ 복원값으로 다음 예측 한 프레임 = 슬라이스 4개 병렬
그림 14-7. DSC 인코더 구조. 색 변환 후 이웃 픽셀로 현재 픽셀을 예측하고(평탄 영역은 MMAP, 반복 패턴은 블록 예측, 소수의 색이 반복되는 UI·텍스트는 인덱스 색 기록 ICH), 잔차를 QP로 양자화해 가변 길이로 부호화한다. 레이트 버퍼와 레이트 제어가 출력 비트율을 정확히 고정한다. 화면은 독립적인 슬라이스로 나뉘어 병렬 처리된다.
$$ \text{CR} = \frac{\text{bpp}_\text{src}}{\text{bpp}_\text{DSC}}, \qquad R_\text{DSC} = f_\text{pclk}\times\text{bpp}_\text{DSC}, \qquad \mathrm{PSNR} = 10\log_{10}\frac{(2^{b}-1)^2}{\mathrm{MSE}} $$
예: 4K 144 Hz 10비트 RGB(30 bpp) → DSC 10 bpp로 CR = 3:1. 필요 대역폭이 약 39 Gbps → 13 Gbps가 되어 DP 1.4 HBR3(25.92 Gbps)에 여유 있게 들어간다. DSC 1.2a는 bpp를 1/16 단위로 지정할 수 있다.

아래 시뮬레이터는 DSC의 핵심 아이디어인 예측 + 잔차 양자화 + 엔트로피 부호화를 단순화해 픽셀 단위로 실행한다. 목표 bpp를 낮추면 양자화 스텝이 커져 오차가 늘어난다. 평탄한 하늘은 거의 공짜로 압축되지만 잡음 많은 질감과 날카로운 글자가 비트를 많이 먹는 것을 확인하자.

SIMULATOR

DSC 체험 — 예측·양자화 압축과 오차 맵

예측기
실제 bpp—
압축비—
양자화 스텝—
PSNR—
최대 오차—
왼쪽 = 원본, 가운데 = 복원, 오른쪽 = |오차| × 증폭. 비트 수는 양자화된 잔차의 엔트로피로 추정했고, 진짜 DSC와 달리 화면 전체에 같은 스텝을 쓴다(실제 DSC는 블록마다 QP를 바꿔 정확히 고정 bpp를 맞춘다). 예측을 끄면 같은 bpp에서 오차가 크게 늘어 "예측"이 압축의 핵심임을 알 수 있다. PSNR이 대략 40 dB를 넘으면 정지 영상에서 차이를 보기 어렵다.
"시각적 무손실"은 수학적 무손실이 아니다

DSC는 ISO/IEC 29170-2 평가법(원본과 압축본을 빠르게 번갈아 보여 주는 깜빡임 테스트)으로 검증된다. 대부분의 콘텐츠에서 구별이 불가능하지만, 의료 영상이나 고정밀 색 작업에서는 무압축 모드를 선호한다. 또 DSC 디코더가 TCON 안에 있어야 하므로 링크 양쪽 모두가 DSC를 지원해야 한다.

디더링과 FRC: 비트를 시간과 공간으로 빌리기

소스 드라이버의 DAC 비트 수는 칩 면적과 비용에 직결된다. 저가 노트북·모니터 패널은 6비트(64단계) 드라이버를 쓰고, 8비트 입력을 표현하기 위해 남는 2비트를 시간이나 공간으로 흩뿌린다. 6비트 레벨 \(q\)와 \(q+1\) 사이의 값을 만들려면, 4프레임 중 \(k\)프레임만 \(q+1\)을 보여 주면 된다. 눈은 수십 ms 동안 빛을 적분하므로(1장, 11장) 평균값을 느낀다. 이것이 FRC(Frame Rate Control)이다. 이웃 픽셀끼리 패턴을 나누어 평균을 만드는 것은 공간 디더링(spatial dithering)이다.

$$ L_\text{perceived} = q + \frac{k}{N}, \qquad v_8 = 4q + k\ (k=0,1,2,3) \;\Rightarrow\; \text{6-bit} + 2\text{-bit FRC} \approx 253\ \text{levels} $$
\(N\): FRC 주기(프레임 수 또는 디더 행렬 크기). 6비트+FRC를 마케팅에서 "16.2M 색"(253³), 8비트+FRC를 "10억 색(10비트 상당)"이라 부른다.
k (분수) 프레임 1프레임 2프레임 3프레임 4시간 평균 1/4 2/4 3/4 q+1/4 q+2/4 q+3/4
그림 14-8. 2×2 시공간 FRC 패턴. 진한 칸이 \(q+1\), 연한 칸이 \(q\)다. 같은 프레임 안에서도 2×2 블록의 일부만 켜고(공간), 그 위치를 프레임마다 돌려(시간) 어느 픽셀이든 4프레임 평균이 \(q+k/4\)가 된다. 위치를 돌리면 화면 전체가 한꺼번에 깜빡이지 않아 플리커가 눈에 덜 띈다.
SIMULATOR

6비트 패널로 8비트 그라디언트 그리기 — 디더 패턴과 시간 평균

방식
프레임—
표현 계조 수—
평균 오차(8비트 LSB)—
프레임 간 깜빡임—
위 띠 = 지금 프레임에 패널이 실제로 내는 6비트 값, 아래 띠 = 최근 4프레임 평균(눈의 적분), 맨 아래 선 = 가로 위치별 평균 계조(점선은 8비트 목표). 6비트 절삭은 4계조마다 계단이 생기는 밴딩(12장)이 보인다. 대비 강조를 켜면 패턴이 잘 보인다. 실제 패널은 60~120 Hz로 돌려 깜빡임이 보이지 않는다.
FRC의 부작용

FRC는 1 LSB(6비트에서 약 1.6%) 진폭의 미세한 깜빡임을 만든다. 정지 상태에서는 보이지 않지만, 특정 패턴이 LCD의 극성 반전 패턴과 맞물리면 줄무늬처럼 흐르는 "FRC 노이즈"나 플리커가 나타날 수 있다. 그래서 TCON 설계자는 디더 행렬의 위상을 프레임·행·열마다 바꿔 저주파 성분을 최소화한다. 고급 HDR 모니터는 10비트 입력을 8비트 패널 + FRC로, 혹은 진짜 10비트 드라이버로 구동한다.

TCON 영상 처리: 디머라·오버드라이브·감마·디밍

TCON은 단순히 데이터를 넘겨주는 다리가 아니다. 패널의 물리적 결함과 한계를 디지털로 보정하는 영상 처리 엔진이다. 대표적인 처리 블록은 다음과 같다.

수신PHY·DSC 해제 디머라픽셀별 게인 감마·색1D/3D LUT 오버드라이브이전↔현재 LUT 로컬 디밍BLU·보상 디더·FRC비트 축소 소스 드라이버TX + 극성 반전 플래시 / OTP디머라 데이터·감마 프레임 메모리이전 프레임(압축) BLU 드라이버LED 존 PWM OLED는 오버드라이브·로컬 디밍 대신 IR 드롭·열화(번인) 보상 블록이 들어간다
그림 14-9. TCON 영상 처리 파이프라인(LCD 예). 디머라 보정 데이터는 공장에서 측정해 플래시에 굽고, 오버드라이브는 이전 프레임 메모리와 현재 값을 비교해 LUT에서 과구동 값을 찾는다. 처리 순서는 제품마다 다르다.

디머라: 측정하고, 저장하고, 거꾸로 보정한다

무라(mura, 일본어 '얼룩')는 TFT 특성 편차, 증착 두께 차이, 셀 갭 불균일, 노광 샷 경계 등으로 생기는 저주파 휘도 얼룩이다(18장). OLED는 픽셀 TFT의 문턱전압·이동도 편차가 그대로 전류 편차가 되므로 특히 심하다. 디머라 공정은 ① 공장에서 고해상도 측색 카메라로 여러 계조에서 패널을 촬영하고, ② 목표 휘도 대비 각 위치의 편차로 보정 계수(게인·오프셋)를 계산해, ③ 블록 단위로 압축한 보정 데이터를 TCON의 플래시에 저장한 뒤, ④ 구동 중 입력 계조에 실시간으로 곱한다.

$$ G(x,y) = \frac{L_\text{target}}{L_\text{meas}(x,y)}, \qquad v'(x,y) = \mathrm{EOTF}^{-1}\!\big(G(x,y)\cdot \mathrm{EOTF}(v)\big), \qquad \text{LUT size} = \frac{W H}{B^2}\times N_\text{plane}\times n_\text{bit} $$
\(B\): 보정 블록 크기(픽셀), \(N_\text{plane}\): 보정을 저장하는 계조 평면 수 × 색 채널 수, \(n_\text{bit}\): 계수 정밀도. 블록 사이 값은 쌍선형 보간으로 복원한다.
SIMULATOR

디머라 보정 파이프라인 — 측정 → 보정 LUT → 적용

단계
보정 블록 크기
계수 비트
균일도 (min/max)—
휘도 편차 σ—
최대 편차—
LUT 크기 (4K, 3평면×RGB)—
무라 모델: 저주파 얼룩 + 소스 드라이버 블록 경계의 세로 줄 + 노광 샷 경계의 가로 띠 + 픽셀 랜덤 편차. 얼룩 진폭은 저계조일수록 커진다(OLED의 전형). 해볼 것: 블록을 16×16으로 키우면 LUT는 256분의 1로 작아지지만 세로 줄 무라와 픽셀 랜덤 편차가 남는다. 측정 잡음을 크게 하고 1×1 블록을 쓰면 잡음이 거꾸로 패널에 새겨진다. 보정 데이터 크기와 정확도의 절충이 디머라 설계의 핵심이다.
보정 데이터 압축과 계조 의존성

4K OLED TV를 픽셀 단위로 3개 계조 평면 × RGB × 8비트로 저장하면 약 75 MB나 된다. 실제로는 2×2~8×8 블록, 계조 평면 3~5개(계조 사이는 보간), 차분·엔트로피 압축을 써서 수 MB 이하로 줄인다. 무라는 계조에 따라 모양이 다르므로(저계조는 TFT 문턱전압, 고계조는 IR 드롭과 이동도) 한 개 평면만으로는 부족하다. 9장의 실시간 외부 보상(센싱)과 디머라는 서로 보완 관계다.

패널 자체 리프레시(PSR)와 전력 관리

노트북 화면은 사용 시간의 상당 부분 동안 거의 멈춰 있다(문서 읽기, 커서 깜빡임). 그런데도 AP는 매 프레임 DRAM에서 프레임 버퍼를 읽고, eDP 링크는 수 Gbps로 똑같은 화면을 보낸다. eDP의 PSR(Panel Self Refresh)은 TCON에 원격 프레임 버퍼(RFB, Remote Frame Buffer)를 두어, 화면이 정지하면 마지막 프레임을 저장하고 TCON이 스스로 패널을 리프레시한다. 그동안 AP 디스플레이 엔진·메모리 경로와 링크 PHY가 꺼진다. MIPI 커맨드 모드와 같은 아이디어다.

PSR2(eDP 1.4)는 여기에 선택적 갱신(Selective Update)을 더해 바뀐 영역(예: 커서, 타이핑 중인 줄)만 보내고 다시 자체 리프레시로 돌아간다. 주사율을 정지 시 낮추는 패널 VRR(LTPO OLED는 1 Hz까지, 4장)과 함께 쓰면 디스플레이 경로 전력을 크게 줄일 수 있다.

화면 내용 AP 디스플레이 eDP 링크 패널 리프레시 변화 중 정지 (문서 읽기) 스크롤 매 프레임 페치 전원 게이팅 (DRAM 셀프 리프레시) HS 활성 PHY 꺼짐 (AUX만) TCON이 RFB에서 스스로 리프레시 PSR 진입 PSR 탈출
그림 14-10. PSR 동작. 화면이 몇 프레임 동안 바뀌지 않으면 AP가 PSR 진입을 지시하고, AP 디스플레이 경로와 eDP 메인 링크가 꺼진다. 패널은 TCON의 원격 프레임 버퍼로 계속 같은 주기로 리프레시된다. 화면이 바뀌면 링크가 재동기화되어(수십~수백 µs) 정상 전송으로 돌아온다.
SIMULATOR

노트북 디스플레이 경로 전력 예산 — PSR·PSR2·VRR

절전 모드
최대 주사율
AP 디스플레이·DRAMeDP PHYTCON패널 구동
디스플레이 경로 전력—
절감—
배터리 시간 (60 Wh)—
가정(QHD+ 노트북, 백라이트 제외): 60 Hz 기준 AP 디스플레이 경로 0.45 W, eDP 송수신 PHY 0.30 W, TCON 0.20 W(+RFB 0.05 W), 패널 구동 0.35 W. 주사율에 거의 비례해 늘어나는 항목과 고정 항목을 나눴다. 나머지 시스템 4.5 W(백라이트 포함). 실제 값은 제품마다 크게 다르다. 해볼 것: 165 Hz 패널에서 PSR을 끄면 디스플레이 경로만 2 W를 넘는다.
스마트폰의 경우

폰은 커맨드 모드(5절)나 비디오 모드 + DDI 프레임 버퍼로 같은 효과를 얻고, LTPO 백플레인으로 정지 화면 주사율을 1~10 Hz까지 낮춘다. AOD(Always-On Display)에서는 DDI가 저전력 내부 클록으로 GRAM의 작은 시계 영역만 그려 패널 전체 소비 전력을 수 mW 수준으로 줄인다.

핵심 정리

  1. 디스플레이 데이터는 AP 프레임 버퍼 → 직렬 인터페이스 → TCON(폰은 DDI) → 소스·게이트 드라이버 → 픽셀로 흐른다. TCON은 타이밍 생성과 영상 보정을 함께 맡는다.
  2. 한 프레임은 액티브 영역 + 수평·수직 블랭킹(프런트 포치, 동기, 백 포치)으로 이루어지고, HSYNC·VSYNC·DE가 그 경계를 알린다.
  3. \(f_\text{pclk}=H_\text{tot}V_\text{tot}f_v\), 데이터율 = \(f_\text{pclk}\times\)bpp. CVT-RB/RBv2는 블랭킹을 줄여 같은 해상도에서 픽셀 클록을 5~10% 낮춘다. VRR은 수직 블랭킹을 늘려 주사율을 바꾼다.
  4. Gbps 링크는 차동 신호로 공통 모드 잡음과 EMI를 억제한다. 쌍 내 스큐는 공통 모드를 차동으로 바꿔 여유를 깎는다.
  5. 라인 코딩 효율: 8b/10b 80%, 16b/18b 88.9%, 128b/132b 97%. 아이 다이어그램의 세로·가로 개구가 잡음·타이밍 여유이며, ISI는 디엠퍼시스·등화로 보상한다.
  6. MIPI DSI 비디오 모드는 매 프레임 스트리밍, 커맨드 모드는 DDI GRAM에 바뀐 영역만 써서 정지 화면 전력을 크게 줄인다. C-PHY는 3선 3레벨로 2.28 bit/심볼을 보내고 클록을 내장한다.
  7. DSC는 예측·양자화·엔트로피 부호화와 레이트 제어로 고정 bpp(보통 8~12)를 만드는 저지연 압축으로, 3:1까지 시각적 무손실이다.
  8. 6비트+2비트 FRC는 4프레임(또는 2×2 공간 패턴) 중 \(k\)개만 한 단계 높여 평균 \(q+k/4\)를 만든다. 시공간 패턴을 섞어야 밴딩과 플리커가 함께 줄어든다.
  9. 디머라는 측정한 휘도 편차의 역수를 블록 단위 LUT로 저장해 실시간으로 곱한다. 블록 크기·계수 비트·측정 잡음 사이의 절충이 있다.
  10. PSR/PSR2와 커맨드 모드는 화면이 정지한 동안 AP와 링크를 끄고 패널 쪽 메모리로 스스로 리프레시해 디스플레이 경로 전력을 절반 이하로 줄인다.

확인 퀴즈

1. 1920×1080 @60 Hz, CTA-861 타이밍(H_tot = 2200, V_tot = 1125)의 픽셀 클록은?

2200 × 1125 × 60 = 148,500,000 Hz. 액티브만으로 계산한 1920×1080×60 = 124.4 MHz는 블랭킹을 빼먹은 값이고, 138.5 MHz는 CVT-RB(2080×1111) 타이밍의 값이다.

2. 가변 주사율(VRR) 모니터가 144 Hz에서 72 Hz로 주사율을 낮출 때 보통 바뀌는 것은?

VRR은 픽셀 클록과 라인 타이밍을 고정한 채 다음 프레임이 준비될 때까지 수직 블랭킹 라인을 계속 이어 붙인다. 링크를 재훈련할 필요가 없어 프레임마다 주사율을 바꿀 수 있다.

3. DP 1.4 HBR3(레인당 8.1 Gbps, 4레인, 8b/10b)의 영상용 유효 대역폭은?

4 × 8.1 = 32.4 Gbps가 원시 비트율이고, 8b/10b 인코딩으로 80%만 데이터가 되어 25.92 Gbps다. 31.4 Gbps는 128b/132b였다면 나올 값이다.

4. 차동 신호에서 쌍 내 스큐(D+와 D−의 길이 차)가 커지면 생기는 문제로 가장 알맞은 것은?

두 선의 신호와 잡음이 같은 시각에 도착해야 빼기로 상쇄된다. 스큐가 있으면 공통 잡음이 서로 다른 위상으로 빼져 차동 잡음이 되고(모드 변환), 천이 구간에서 차동 신호가 일시적으로 0 근처에 머물러 아이 폭이 줄어든다.

5. 스마트폰이 AOD처럼 대부분 정지한 화면에서 DSI 커맨드 모드를 쓰면 전력이 줄어드는 주된 이유는?

패널 리프레시는 계속되지만 DDI가 GRAM에서 읽어 직접 한다. AP는 바뀐 영역이 있을 때만 깨어나 그 사각형만 쓰고, 링크는 나머지 시간 LP 상태로 쉰다.

6. 4K 144 Hz 10비트 RGB 신호에 DSC를 10 bpp로 적용했을 때 압축비는?

원본 bpp = 3 × 10 = 30 bpp, DSC 출력 10 bpp → 30/10 = 3:1. DSC는 이 정도까지 시각적 무손실을 목표로 설계되었다.

7. 6비트 패널에서 8비트 입력값 v₈ = 101을 2비트 FRC로 표현하려면 4프레임 동안 어떻게 구동해야 하나?

101 = 4 × 25 + 1 → q = 25, k = 1. 4프레임 중 1프레임만 q+1 = 26을 보여 주면 평균은 25.25(8비트 101에 해당)가 된다.

8. 디머라 보정 블록 크기를 4×4에서 16×16으로 키울 때의 결과로 옳은 것은?

블록 수는 \((16/4)^2=16\)배 줄어 LUT도 1/16이 된다. 대신 공간 해상도가 떨어져 소스 드라이버 경계의 좁은 세로 줄 같은 고주파 무라는 평균에 묻혀 남는다. 측정 잡음은 블록 평균으로 오히려 줄어든다.