최근 수정 시각 : 2024-12-20 13:07:26

JPEG

JPE에서 넘어옴
🖼️ 그래픽 포맷
{{{#!wiki style="margin:0 -10px -5px; min-width:300px; min-height:calc(1.5em + 5px); word-break:keep-all"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
<colbgcolor=#555>비트맵<colbgcolor=#555>손실 압축JPEGAVIF▶Lα · BPG▶α · FLIF▶α · HEIF · WebP▶α ·RAW · DDS▶Lα · PSD▶Lα
무손실
압축
APNG▶α · DNG · EXRα · GIF · PCX · PNGα · RGBEα · TGAα · TIFF
무손실 무압축BMPα
벡터AI · CDR · SVG
▶: 애니메이션 기능 지원 / L: 다중 레이어 지원 / α: 알파값 지원
관련 틀: 그래픽 · 오디오 · 비디오
}}}}}}}}}


1. 개요2. 유형3. 특징
3.1. 정보 손실3.2. 작은 용량3.3. 이중 압축3.4. 순차 주사
4. 후속 포맷
4.1. Motion JPEG4.2. JPEG2000 4.3. JPEG XR (2009) 4.4. JPEG XT (2015)4.5. JPEG XS (2019.5)4.6. JPEG XL (2019.12)
5. 유용한 JPG 압축 사이트
5.1. jpeg 압축 알고리즘으로 화질 열화를 의도하기
6. 그 외
6.1. 압축률 향상을 위한 노력6.2. 확장자 드립6.3. 여담

1. 개요

Joint Photographic Experts Group의 약자로, 그림 파일 형식의 하나다. 정지 화상을 위해서 만들어진 손실 압축, 무손실 압축 (JPEG 9.1부터) 방법 표준이다. 이 표준은 ISO와 ITU-T에서 제정했다.(ISO 10918-1, 한국어 설명) 압축에는 이산 코사인 변환(DCT)을 사용한다.

공식 발음은 제이펙 (J+PEG)이나 대한민국에서는 일반적으로 제이피이지 또는 확장자 .jpg에서 딴 제이피지라고 부른다. JPEG를 사용하는 파일 형식들도 보통 JPEG 이미지라 불리며, .jpg, .jpeg, .jpe, .jfif 등의 확장자를 사용한다. 이름 바꾸기로 확장자를 바꿔도 문제가 없다. 다만 플랫폼에 따라서 .jpg만 인식하고 나머지는 인식을 못하는 경우도 있다.

2. 유형

JPEG 표준은 이미지가 어떻게 연속된 바이트로 바뀌는지만을 규정한다. 그 외 확장 방식(컨테이너)에 따라 아래와 같은 몇가지 유형이 나뉘어진다.
  • EXIF-JPEG: 디지털 카메라의 사진 저장 방식이다. EXIF 방식의 메타데이터를 포함하여 사진을 찍은 시간, GPS, 카메라 정보 등을 기록한다.
  • JPEG-R: 듀얼 레이어 방식으로 하위호환성을 유지하면서 동시에 ITU-R BT.2100 표준에 기반하여 HDR 이미지를 기록하기 위한 확장 규격이다. JPEG-R 호환 파일에는 SDR 이미지와 HDR 게인맵 이미지가 있다. JPEG-R 규격을 지원하지 않거나 SDR로 표현을 해야 할 경우에는 SDR 이미지만 로딩하게 되고 HDR로 표현해야 할 경우에는 SDR 이미지와 HDR 게인맵 이미지를 합성하여 결과물을 HDR로 보여준다. 구글에서는 울트라 HDR (Ultra HDR), 삼성전자는 슈퍼 HDR (Super HDR)이라고 부르는 방식이다.
  • JFIF: JPEG File Interchange Format으로, 인터넷에서 스트림 전송[1]에 적합한 형태로 이미지를 담는 파일 형식이다. 보통 .jpg 파일이라고 불리는 JPEG의 컨테이너 그 자체다. 독립 JPEG 그룹(Independent JPEG Group; IJG)에서 만들었다. JPEG에서 프로그래시브 인코딩을 하는 경우 JPEG 비트스트림이 JFIF 에 나뉘어 저장되게 된다.
  • 그 외: JPEG 비트 스트림을 PNG컨테이너에 넣은 JNG와 같은 파일 형식도 있다.

3. 특징

3.1. 정보 손실

파일:external/hbfs.files.wordpress.com/jpeg_compression.jpg
흔히 이미지가 '깨진다', 또는 '사이버풍화', '디지털 풍화'라고 말하는 현상.

JPEG/JFIF는 웹 상에서 사진 등의 화상을 보관하고 전송하는 데 가장 널리 사용되는 파일 형식이다. 압축 과정은 YIQ모델로 변환 → Macroblock화 → 8×8블록화 → 이산 코사인 변환 → 양자화[2] → 지그재그 스캐닝 → 엔트로피 코딩의 단계를 거친다. 이 중에서 양자화 과정이 되돌릴 수 없는 과정이며, JPEG 압축 이미지의 손실이 대부분 이 과정에서 발생한다. 때문에 이 압축 방법은 인물이나 풍경 사진에는 쓸만할지 몰라도, 문자, 선, 세밀한 격자 등 고주파 성분이 많은 이미지의 변환에서는 GIFPNG에 비해 불리하며, 나쁜 품질을 보이는 경우가 많다.

현재는 JPEG 표준에도 비손실 압축 방법이 정의되어 있지만, 사실 원래 손실 압축 전용 규격이며 이를 대체하기 위한 손실/비손실 통합 규격이 이미 2000년대 초(JPEG 2000)와 2006년(JPEG XR)에 제안된 바 있다.[3] 비손실 JPEG 표준(9.1)은 저 둘이 실패한 후 2014년에야 나왔다(JPEG 최초버전은 1992년 생이다!). 아마 새로운 이름으로 보급이 안 되니깐 기존이 쓰던 이름 그대로 버전업 형식으로 추가하면 그나마 보급이 되지 않을까 싶어 시도한 것으로 보이지만, 특허 문제와 압축율 등의 이유로 잘 사용되지는 않으며, 비손실 압축 형식을 쓰려는 사람은 PNG 등의 비손실 압축 전용 포맷을 많이 사용한다.[4] 반대로 9.1 이전 JPEG으로 비손실 저장을 하는 방법도 있지만, 이쪽은 압축과정 대부분을 생략하는 편법에 가까워서 포맷만 JPEG이지 압축율 문제가 극심하다. 현재 손실/비손실 통합 포맷 중 그나마 널리 쓰이는 편인 건 구글이 밀어주는 WebP(2010년) 정도이다.

사진을 압축할 목적으로 개발한 알고리즘이기 때문에 복잡한 패턴과 색상이 포함될수록 손실을 으로 감지하기 어려워진다. 쉬운 예로 단색이나 뚜렷한 윤곽선을 가지는 그래픽을 JPEG 압축하면 색이 뭉개지며 흩뿌려지거나 윤곽선 주위에 노이즈가 낀다.[5]

품질 설정이 낮을수록 과감하게 손실시키면서 압축하기 때문에 적당히 낮은 값으로 고정되어 설정 자체를 보여주지도 않는 그림판 같은데서 이 포맷으로 저장하면 아름답게 도트가 뭉개지고 색이 갈변하는 것을 볼 수 있다.[6] 그리고 DSLR을 사용하는 사람들은 JPEG보다는 raw 이미지를 사용하고, 인쇄 출판 계통쪽 사람들은 TIFF, EPS 포맷을, 웹에서 무손실 포맷이 필요할 때는 PNG를 많이 쓰는 편. JPEG로 저장할 때 최상 퀄리티로 설정해두면 그만큼 압축율은 떨어지지만 손실도 적어져서 포토샵 기준 품질 12[7][8]정도 되면 웬만큼 확대해서 비교해도 무손실인 것처럼 보이는 수준이긴 한데, JPEG 9.1이 아닌 이상 아무리 높은 퀄리티로 해도 손실이 없어지진 않는다.

JPEG를 쓸 때 빨간색이 들어가는 이미지라면 다른 포맷을 쓰는 것이 좋다. 빨간색이 특히 잘 무너진다. 또한 흰색의 녹화 현상도 심하다. 인코더 설정에서 1:1 서브샘플링(4:4:4 컬러 서브 샘플링 또는 픽셀 서브샘플링 없음) 설정이 가능하면 전혀 일어나지 않는 현상이다. 물론 용량 증가[9]는 감수해야 한다.

JPEG로 저장된 파일을 불러와서 편집하고, 다시 JPEG 형식으로 저장하면 그림이 한 층 더 뭉개진다. 손실 압축 포맷 자체의 특성상 당연한 얘기지만... 따라서 JPEG로 그림을 보관하는 경우에는 편집을 대비해서 원본을 별도로 보관할 필요가 있다.

3.2. 작은 용량

작은 용량 덕분에 각종 웹 사이트들이 가장 좋아하는 업로드 확장자의 하나이다. 특히 대부분 국내 웹 사이트들은 이미지 업로드시 강제적으로 JPEG나 GIF 혹은 PNG 형식 파일만 업로드 하게 지정해놓고 있다. 이유는 딱 하나. 용량이 작으니까.[10] 그 중에서도 JPG 확장자를 제일 선호하는 듯 싶다.

3.3. 이중 압축

손실 압축을 하는데도, 1번 더 (무손실) 압축할 수 있는 프로그램이 있다. (WinZip, Stuffit, PackJPG) 단, 고유 파일형식을 사용하기 때문에 똑같은 프로그램이 없으면 압축 해제가 안된다.

3.4. 순차 주사

순차 주사 (Progressive)를 지원한다. 이걸 쓸 경우 웹상에서 로딩 방식이 달라지고[11] 포토샵 기준으로 파일 용량이 10% 가량 줄어드는 장점이 있다. 다만 저장할 때마다 세팅을 일일이 해야 하는 귀찮음이 있다.

4. 후속 포맷

4.1. Motion JPEG

🎞️ 비디오 코덱 및 포맷
{{{#!wiki style="margin: 0 -10px -5px; min-height: 26px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1.5px -13px"
<colbgcolor=#555>
<colbgcolor=#555>MPEG-1 · MPEG-2 Part 2(H.262) · MPEG-4 Part.2 (DivX · Xvid) · H.261 · H.262 · H.263 · H.264 · H.265 · H.266
기타DV · WMV · Theora · VP8 · VP9 · AV1 · Apple ProRes · Bink · GoPro CineForm · Motion JPEG
컨테이너(확장자)ASF · AVI · BIK · FLV · MKV · MOV · MP4 · MPEG · OGG(OGV) · SKM · TS · WebM · WMV
관련 틀: 그래픽 · 오디오 · 비디오
}}}}}}}}} ||


이 JPEG 기술을 이용해서 나온 동영상 파일 포맷이 Motion JPEG로, QuickTime Player에 처음 채용했다. MPEG과는 달리, 여러 프레임 사이의 압축을 하지 않기 때문에 MPEG보다 더 용량이 크다.

의외로 여러 군데서 쓰였는데, 플레이스테이션의 동영상 포맷으로 사용됐다. 일부 디지털 카메라로 동영상을 촬영하면 이 포멧으로 인코딩 된다.

여담으로 JPEG Still Image라고도 한다.

4.2. JPEG2000

JPEG의 후속 포맷으로 고안된 차세대 이미지 코덱이다. 웨이블릿 변환(Wavelet Transform) 방식을 기반으로 하며 무손실과 손실 압축을 둘다 지원한다. 확장자는 주로 .jp2를 사용한다. 코덱이 지나치게 무거워서 일반 보급에는 실패했으나 전문가용으로는 여러 곳에서 널리 사용된다. 디지털 영화 배포 방식의 표준인 DCP에서 시각 정보를 담는데 Motion JPEG2000 을 사용하며, 그 외에 지리/천문/의료 이미지를 다룰 때에도 많이 사용된다.

4.3. JPEG XR (2009)

마이크로소프트가 발전시키고 특허를 보유한, 윈도우 미디어 포토.wdp(HD Photo.hdp)용 포맷이다. JPEG2000의 코딩/디코딩이 느린 것을 해소했다. Adobe Flash, Internet Explorer에서 지원했다. 왠지는 모르겠지만 디지털카메라들은 이 포맷으로 사진을 기록하지 않는다.

4.4. JPEG XT (2015)

HDR, 깊은 심도 등 익스텐디드 스펙을 담은 포맷이다.

4.5. JPEG XS (2019.5)

VR, 드론, 자율주행차에서의 이미지/비디오 스트리밍을 목표로 하는 저지연 이미지/비디오 포맷이다. 저성능의 단말에서도 충분히 기동할 수 있도록 가볍게 하는 것을 추구한다.

4.6. JPEG XL (2019.12)

사이트: jpeg.org / jxl백서.pdf / jpegxl.info / 코덱비교 by Cloudinary / 만들기 by jpegxl.io

FLIFFUIF구글 Pik을 합쳐 만든 손실/무손실 이미지를 지원하는 로열티 프리 포맷이다. 이름에는 Long-Term의 L을 쓰며 궁극적으로 레거시 jpg를 대체할 목적을 가지고 있다. 여타 신 포맷이 과거 포맷과 호환이 안되는 것과 다르게 JPEG XL은 레거시 JPEG의 특성을 그대로 가지고 있다. 성능은 WebP를 비롯한 그 이전 레거시 포맷보다 효율적이고, 동시대의 코덱인 AVIF와 비교하면 저용량 고압축에는 AVIF가 무손실과 빠른 처리는 JPEG XL이 강점을 보일 듯 하다.

XnView MP(0.97.0), ExifTool(12.23), Squoosh, 반디뷰 등의 앱에서 지원한다.

크로뮴 브라우저(크롬 91.0.4470.0, 엣지 91, 오페라 77)와 Firefox(90.0a1)에서는 지원 테스트 중이다. 현황[12]
2022년 10월 29일 구글에서 크롬 110버전에서 부터는 JPEG XL을 지원하지 않겠다고 선언했다. 포맷이 여전히 실험적이고 생태계에서 주목받고 있지 않다는 것이 그 이유.#

AppleiOS 17, iPadOS 17, macOS Sonoma에서 지원하며, 몬터레이벤튜라에서는 Safari 17을 통해 지원한다. 다만, WebP처럼 정보 보기에서 제대로 표기 되지 않는데, iOS에서는 포맷 정보가 비어있고, macOS에서는 JPEG라고 표시된다.

iPhone16 Pro는 Apple ProRAW촬영 때 JPEG XL을 지원하며 손실과 무손실 모드 모두 지원한다.[13] 다만, Apple ProRaw는 JXL로 직접 저장되는 것이 아니라, DNG 컨테이터 속에 들어있고, 애플 사진 앱에서는 JPEG XL이 아닌 RAW로 표기된다.

5. 유용한 JPG 압축 사이트

  • MozJPEG - 모질라 재단에서 만든 mozjpeg 라이브러리를 이용한 사이트이다. jpg를 압축하는 라이브러리 중 가장 성능이 뛰어난 것으로 알려져 있다. mozjpeg에 대한 자세한 내용은 후술.
  • Squoosh - 구글에서 만든 이미지 압축 사이트 (웹앱)이다. (소스코드 #) 레거시 JPEG를 개선한 압축(Browser JPEG, MozJPEG)을 할 수도 있고, 그외 다른 최신 포맷(AVIF JPEG XL등)으로의 압축도 지원한다.
  • JPEGmini - 그 외 JPEG로 인한 화질 저하가 없으면서, 파일 용량을 줄이는 다른 사이트로 이 사이트가 있다. 사진 크기나 기타 다른 변환 없이 용량만 줄여준다. 다만, 업로드 시 JPEG 확장자만 지원한다.

5.1. jpeg 압축 알고리즘으로 화질 열화를 의도하기

6. 그 외

6.1. 압축률 향상을 위한 노력

  • 웹에서 가장 많이 쓰이고 있어 동일 화질 기준 좀 더 크기를 작게(동일 용량 기준 화질이 좋게) 하기 위한 연구가 많이 있다. 대표적인 것이 모질라의 프로젝트인 mozjpeg (wiki) 와 구글의 Guetzli(wiki)가 있다.
  • mozjpeg는 약 10% 정도 더 작게 압축을 한다고 한다.
  • Guetzli는 약 35% 정도 더 작게 압축을 할 수 있다고 하는데, 문제는 압축 속도가 250배 이상 느리다. 심지어 저 속도는 mozjpeg 기준이다! mozjpeg도 포크 원본인 libjpeg-turbo[15]에 비해 느리다고 많이 까인 걸 생각하면...# (댓글들 참고)
  • mozjpeg가 더 먼저 나왔고 평가도 더 좋은 편이다. JPEG의 원래 용도(사진이나 고해상도 게임 그래픽 등 복잡한 패턴과 색상을 압축할 때)에서 체감 화질 대비 압축률이 매우 좋은 편이다. 반면 Guetzli는 단색이나 뚜렷한 윤곽선을 가지는 그래픽에서 JPEG 특유의 단점을 덜 드러내는 편인데, 그런 경우 차라리 PNGWebP, HEIF, AVIF를 쓰는 게 나은 경우가 많다.[16]
  • 윈도우 사용자를 위한 GUI 변환기는 mozjpeGUI(mozjpeg), iPress링크[17], XnView(Guetzli)를 사용하는 것이 가장 편리하다. #

6.2. 확장자 드립

파일:상세 내용 아이콘.svg   자세한 내용은 확장자 문서
번 문단을
인터넷 커뮤니티상에서의 확장자 부분을
참고하십시오.

6.3. 여담

  • SVG 파일을 카카오톡에 공유해서 다운을 받으면 이 형식이 된다.
  • macOS에서 .jpg 파일을 다운로드 받으면 .jpeg 확장자로 저장된다. 물론 Windows와 호환이 된다.
  • T-DMB의 V-Radio 프로필에서 영상부 포맷으로 사용된다.
  • 브라우저에서 종종 JPG 파일을 JFIF 확장자로 다운로드 받아지는 문제가 있다. 이 경우 레지스트리 편집기를 열어 컴퓨터\HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg에 들어가 Extension의 데이터 값을 .jpg로 바꾸면 된다.

[1] 일반적으로 스트림 전용 방식이라면 파일 전송이 완료되기 전에 메타데이터를 먼저 전송해서 파일 정보를 일찍 확인할 수 있게 만들고, 네트워크 환경이 불안정해서 전송이 일부 끊겨도 처음부터 다시 전체 파일을 받을 필요 없이 패킷을 관리할 수 있게 구조를 짜는 등의 기술이 들어간다.[2] Quantization, 계수화라고도 한다.[3] 반디집으로 유명한 키플러님이 2007년 당시 관련 프로그램을 만들면서 소개한 글이 있다.[4] PNG도 Opus 비슷한 방식으로 손실 압축을 하는 게 가능하지만, 별도 유틸을 이용한 개조이지 포맷 자체는 비손실만 정의하고 있다. 음악 쪽으로는 손실 FLAC이 비슷한 처지.[5] 이 때문에 배경을 따는 데 애로사항이 생긴다. 여기서 나온 것이 디자이너를 괴롭히는 방법이다.[6] 그림판을 열어 빨간색으로 선을 쭉 그은뒤 저장해보자. 갈색이 된다.[7] 프리셋 맥스가 아니다! 프리셋 맥스는 품질 10인 점을 조심. 포토샵은 품질 12가 최대이다. 100을 최대값으로 쓰는 프로그램들과 혼동하지 않도록 주의할 것.[8] 웹용으로 저장(Ctrl+Shift+Alt+S)을 쓰는 경우 품질을 100단계로 설정 가능하다.[9] 용량이 정해진 상황이라면 결국 다른 측면에서 화질 열화가 일어난다.[10] 보안적인 이유도 있다. 웹셸이나 XSS 등 서버나 클라이언트에 악영향을 주는 파일의 업로드를 원천적으로 차단하기 위함이다.[11] 저해상도의 이미지를 앞서 보여준 다음 점점 해상도를 높이는 방식으로 로딩된다.[12] 2021년 시점, 별도 flag를 설정해야 사용할 수 있다.[13] 출처 : iPhone 16 Pro: Using the New ProRAW Shooting Formats[14] 원조는 http://needsmorejpeg.com이지만, 워터마크를 넣는다.[15] 제일 원조는 libjpeg/SIMD이고, libjpeg/SIMD와 libjpeg-turbo 모두 SIMD 및 최신 CPU기술 활용을 통한 속도 향상에 중점을 두고 있다.[16] 2021년 기준, HEIF, AVIF의 경우 읽을 때 한박자 굼뜨기 때문에, WebP가 (아이폰이나 맥북을 쓰지 않는다면) 현 시점에서는 속도와 용량 밸런스가 적절하다. 범용성을 추구하면 mozjpeg등을 고려하고, 효율성을 추구하면 HEIF를 추천한다.[17] 구라제거기 제작자가 만든 것.