디지털·가전제품

같은 해상도의 스마트폰 스크린샷인데 왜 사진마다 용량이 다를까요?

스마트폰 스크린샷은 결국 화면에 표시된 각각의 픽셀에 색상 정보를 저장하는 것으로 알고 있습니다. 그렇다면 같은 해상도의 스마트폰에서 찍은 스크린샷은 픽셀의 개수도 똑같을 텐데 왜 스크린샷마다 파일 용량이 크게 달라지는 것인가요

예를 들어 같은 1080×2400 해상도로 캡처했는데 어떤 스크린샷은 1MB 정도이고 다른 것은 몇 MB가 되기도 합니다. 모든 픽셀의 색상 정보를 저장한다면 픽셀 수가 같은 만큼 필요한 저장공간도 비슷해야 할 것 같은데 실제로 용량이 달라지는 원리가 궁금합니다.

화면에 있는 색상이나 이미지의 복잡도에 따라 저장할 때 데이터 자체를 다르게 처리하는 것인지 아니면 제가 생각하는 것처럼 단순히 픽셀의 색상만 저장하는 방식이 아닌 것인지 궁금합니다

1개의 답변이 있어요!

  • 안녕하세요. 저도 예전에 똑같은 게 궁금해서 스크린샷 파일들을 하나하나 뜯어본 적이 있는데요, 결론부터 말씀드리면 스크린샷은 화면의 픽셀 색상을 그대로 통째로 적어두는 게 아니라 저장하는 순간에 압축을 한 번 거치기 때문에 용량이 달라집니다. 픽셀 개수는 같아도 그 압축이 얼마나 잘 먹히느냐가 화면마다 다르거든요.

    만약 정말 압축 없이 픽셀 색상을 그대로 다 적는다면 말씀하신 대로 용량이 항상 똑같아야 맞습니다. 1080x2400이면 화소가 약 259만 개고 한 픽셀에 빨강 초록 파랑을 각각 1바이트씩 쓴다고 치면 대략 7메가에서 8메가 사이가 나옵니다. 그런데 실제 갤러리에 저장된 스크린샷은 그보다 훨씬 작죠. 그 줄어든 만큼이 바로 압축입니다.

    안드로이드 기본 캡처는 보통 PNG로 저장되는데 이건 무손실 압축입니다. 원리를 아주 거칠게 말씀드리면 옆 픽셀이나 위 픽셀을 보고 다음 색을 예측한 다음 그 차이값만 적어두고, 똑같은 값이 계속 반복되면 그걸 한 덩어리로 묶어버립니다. 그래서 흰 배경이 넓게 깔린 화면은 같은 값이 수만 번 반복되니까 어마어마하게 줄어들고, 반대로 사진이나 그라데이션처럼 픽셀마다 색이 미세하게 다 다른 화면은 묶을 게 없어서 거의 안 줄어듭니다.

    제 폰 갤러리를 실제로 열어서 비교해봤는데 차이가 진짜 큽니다. 메신저 대화창 캡처처럼 흰 바탕에 글자만 있는 건 300에서 400킬로바이트 정도밖에 안 됐는데, 게임 화면이나 유튜브 영상 캡처처럼 색이 복잡하게 섞인 건 4메가가 넘어가더군요. 같은 폰에 같은 해상도인데 열 배 넘게 차이가 나는 겁니다.

    그리고 캡처 형식이 JPG인 경우도 있는데 이건 손실 압축이라 눈에 잘 안 띄는 정보를 아예 버리면서 크기를 줄입니다. 다만 여기서도 화면이 복잡할수록 버리지 못하고 남겨야 할 정보가 많아져서 용량이 커지는 방향은 똑같습니다. 삼성 갤럭시는 설정에 들어가서 유용한 기능, 화면 캡처 및 화면 녹화 순서로 찾아 들어가시면 캡처 파일 형식을 PNG와 JPG 중에 고를 수 있게 돼 있습니다. 아이폰은 이 선택지가 없고 PNG로 저장됩니다.

    솔직하게 단점도 말씀드리면 용량 아끼겠다고 무조건 JPG로 바꾸는 건 권해드리지 않습니다. 저도 한동안 JPG로 써봤는데 글자 테두리 주변에 지저분한 번짐이 생겨서 캡처를 확대해 보면 티가 납니다. 문서나 대화창처럼 글자 위주인 화면은 오히려 PNG가 용량도 더 작고 글씨도 깨끗합니다. 반대로 사진이나 게임 화면을 자주 캡처하시는 분이라면 그때는 JPG가 확실히 이득입니다.

    이 외에도 용량을 흔들어놓는 변수가 몇 가지 더 있습니다. 첫째로 다크 모드로 캡처하면 검은 영역이 넓어서 밝은 화면보다 작게 나오는 경우가 많고, 둘째로 스크롤 캡처는 세로 픽셀 수 자체가 늘어나니 당연히 커지고, 셋째로 캡처한 뒤에 잘라내거나 낙서를 하고 저장하면 다시 인코딩되면서 크기가 또 달라집니다.

    정리하면 픽셀의 색상 정보를 저장한다는 생각 자체는 맞는데, 그걸 날것 그대로 저장하지 않고 압축해서 저장한다는 게 핵심입니다. 그래서 화면이 단순할수록 작아지고 복잡할수록 커지는 거예요. 궁금증이 좀 풀리셨으면 좋겠습니다.

    채택된 답변