현재 타일 한 변의 셀 분할 수는 M=16입니다. 안티에일리어싱(AA)은 글자 획과 창 가장자리의 계단 현상을 줄일 수 있습니다. 삼각 셀 수나 RGB332 색상 단계 자체를 늘리지는 않습니다.
소프트웨어 투영 AA
Bosio C++ 합성기는 창 이미지의 색을 삼각 셀에 맞춰 양선형 보간합니다. 셀 하나가 원본 이미지에서 덮는 범위를 계산해 일반 부분은 2×2 평균, 대비가 큰 글자 획과 경계는 적응형 4×4 평균을 사용합니다. 얇은 색상 선과 검정 글자의 밝기를 각각 보정한 뒤 RGB332 색상으로 바꿉니다.
창 가장자리는 삼각 셀의 중심만 보고 자르지 않습니다. 셀 일부가 창 안에 들어오면 그 면적에 맞춰 창 색과 아래 창의 색을 섞습니다. 그래서 모서리와 테두리가 타일 경계에서 덜 끊겨 보입니다. 창 내용이 일부만 바뀌면 AA 계산 범위에 들어오는 셀만 다시 합성합니다.
출력 RTL AA
출력 코어에는 화면 픽셀 사이의 밝기 차이로 경계를 찾는 AA가 있습니다. 기본값은 켜짐, 임계값 24, 강도 32입니다. 경계 픽셀을 이웃 색과 약 12.5% 혼합합니다. 강도를 너무 높이면 작은 글자가 흐려질 수 있어 현재 설정은 낮은 강도를 사용합니다.
해상도를 올릴 때의 비용
| 타일 한 변 M | 타일당 삼각 셀 | 20면 전체 셀 | 의미 |
|---|---|---|---|
| 8 | 64 | 270,080 | 이전 낮은 장면 분할 |
| 16 | 256 | 1,080,320 | 현재 기본값 |
| 32 | 1,024 | 4,321,280 | M16 대비 셀·장면 작업량 약 4배 |
전체 셀 수는 20 × 211 × M²입니다. M=32는 더 세밀하지만 FPGA에서 저장·읽을 데이터와 ARM에서 합성할 셀도 네 배가 됩니다. HDMI가 일정한 프레임률로 영상을 계속 내보내더라도, 앱에서 바꾼 내용이 매 프레임 새로 합성되어 나타나는 것은 아닙니다.
검증에서 보는 것
화질을 비교할 때는 같은 자세에서 AA를 끄고 켠 화면을 보고, 글자 획이 이어지는지, 창 모서리가 자연스러운지, 회색이 다른 색으로 번지지 않는지 확인합니다. 앱 내용의 일부를 바꿨을 때 해당 타일만 갱신되는지도 살펴봅니다. 개발 PC의 속도 측정값은 PYNQ-Z2의 실제 성능이 아닙니다. 보드에서는 창이 시야에서 차지하는 면적과 앱 이미지의 변경 범위를 함께 기록해야 합니다.
안티에일리어싱 설명과 검증·속도 측정 코드를 참고하세요. 작은 글씨는 앱에서 먼저 크게·굵게 그리는 편이 효과적입니다.