업스케일 결과가 기대보다 어색할 때, 원인은 모델보다 원본 파일에 있는 경우가 많습니다. 그중 가장 흔한 원인이 JPEG 압축으로 생긴 손상입니다. 사람의 눈에는 거의 보이지 않던 손상도 4배로 키우면 그대로 드러나고, 때로는 AI가 손상을 디테일로 착각해서 더 강조하기도 합니다.
JPEG는 어떻게 용량을 줄이는가
JPEG는 사람이 잘 알아채지 못하는 정보를 버리는 방식으로 용량을 줄입니다. 이미지를 가로세로 8픽셀 단위의 블록으로 나눈 뒤, 블록마다 밝기 변화를 주파수 성분으로 바꾸고, 세밀한 변화에 해당하는 고주파 성분을 대략적인 값으로 깎아 냅니다. 이 과정을 양자화라고 하며, 저장할 때 고르는 “품질” 값이 낮을수록 더 많이 깎습니다. 또한 사람의 눈이 밝기보다 색에 둔하다는 점을 이용해, 색 정보는 가로세로 절반 해상도로만 저장하는 경우가 많습니다.
이 과정에서 다음과 같은 손상이 생깁니다.
- 블록 노이즈: 8×8 블록의 경계가 격자처럼 보이는 현상입니다. 하늘이나 벽처럼 밋밋한 영역에서 잘 보입니다.
- 링잉(모스키토 노이즈): 글자나 선처럼 대비가 강한 경계 주변에 생기는 얼룩입니다. 경계를 따라 모기떼가 날아다니는 것처럼 보인다고 해서 이런 이름이 붙었습니다.
- 색 번짐: 색 정보를 낮은 해상도로 저장했기 때문에, 빨간 글씨나 선명한 색 경계 주변에서 색이 옆으로 번집니다.
- 디테일 소실: 머리카락, 잔디처럼 고주파 성분이 많은 영역이 뭉개져서 덩어리처럼 보입니다.
업스케일러는 노이즈를 어떻게 다루는가
PixelUp이 사용하는 Real-ESRGAN은 학습할 때 일부러 JPEG 압축을 여러 번 적용한 이미지를 입력으로 사용했습니다. 그래서 가벼운 압축 손상은 업스케일 과정에서 상당 부분 걸러 냅니다. 품질 80 이상으로 한 번 저장된 사진이라면 대부분 노이즈가 거의 보이지 않는 결과가 나옵니다.
문제는 손상이 심한 경우입니다. 모델은 노이즈와 실제 디테일을 완벽히 구분하지 못하기 때문에, 다음 두 방향 중 하나로 실패하게 됩니다.
- 노이즈를 디테일로 판단하면 블록 경계를 선이나 무늬로 강조해서, 원본에 없던 격자 무늬가 선명하게 나타납니다.
- 디테일까지 노이즈로 판단하면 질감을 통째로 지워서, 피부가 밀랍처럼 매끈하거나 풀밭이 물감 덩어리처럼 보이는 결과가 나옵니다.
손상 정도에 따른 기대 결과
| 원본 상태 | 흔한 출처 | 기대 결과 |
|---|---|---|
| 압축 손상 거의 없음 | 카메라 원본, PNG로 저장한 이미지 | 선명하고 자연스러움 |
| 가벼운 손상 | 일반적인 웹 이미지, 한 번 저장한 JPEG | 노이즈가 대부분 정리됨 |
| 중간 손상 | 메신저로 몇 차례 전달된 사진 | 2배에서는 무난하고, 4배에서는 질감이 다소 인위적 |
| 심한 손상 | 여러 번 캡처하고 재업로드한 이미지 | 격자 무늬나 뭉개짐이 남을 가능성이 높음 |
더 좋은 원본을 구하는 방법
업스케일 결과를 개선하는 가장 효과적인 방법은 설정을 바꾸는 것보다 덜 손상된 원본을 구하는 것입니다.
- 메신저로 받은 사진이라면 보낸 사람에게 원본 화질 전송 옵션이나 파일 첨부 방식으로 다시 보내 달라고 요청하세요. 일반 사진 전송은 대개 재압축을 거칩니다.
- 클라우드 사진 보관함에 있는 사진이라면 미리보기 화면을 캡처하지 말고 원본 다운로드 기능을 사용하세요.
- 웹에서 찾은 이미지라면 썸네일이 아니라 클릭해서 열리는 가장 큰 버전을 저장하세요. 화면 캡처는 원본보다 작은 크기로 다시 압축되는 경우가 많습니다.
확대 전에 피해야 할 습관
손상은 한 번 생기면 되돌릴 수 없고, 저장할 때마다 누적됩니다. 다음 습관은 결과를 나쁘게 만드는 흔한 원인입니다.
- JPEG를 편집한 뒤 다시 JPEG로 저장하기: 잘라 내기만 했더라도 다시 저장하면 압축이 한 번 더 적용됩니다. 편집이 필요하다면 PNG로 저장해서 올리세요.
- 손상된 JPEG를 PNG로 변환하면 나아진다고 기대하기: PNG로 바꾸면 추가 손상을 막을 수는 있지만, 이미 생긴 손상이 사라지지는 않습니다.
- 용량을 줄이려고 품질을 크게 낮추기: 파일을 작게 만들어야 한다면 품질을 60 아래로 낮추기보다, 품질은 90 이상으로 유지하고 크기를 줄이는 편이 결과에 유리합니다. PixelUp은 20MB, 긴 변 2048픽셀까지 받으므로 보통은 원본을 그대로 쓰면 됩니다.
출력 형식은 마지막 용도에 맞춰 고르세요
PixelUp은 결과를 PNG, JPG, WebP로 받을 수 있습니다. 결과를 더 편집하거나 다른 곳에서 다시 저장할 예정이라면 손실이 없는 PNG가 안전합니다. 공들여 정리한 결과를 JPEG로 여러 번 다시 압축하면 새로운 노이즈가 쌓이기 때문입니다. 바로 웹에 올리거나 메신저로 보낼 결과라면 처음부터 JPG나 WebP로 받아도 괜찮습니다. 어느 쪽이든 압축은 마지막 단계에서 한 번만 하는 것이 핵심입니다. 결과가 여전히 어색하다면 업스케일 결과가 어색할 때 확인할 것에서 증상별 원인을 확인해 보세요.