최근 수정 시각 : 2022-06-21 09:07:42

JPEG

그래픽 포맷
{{{#!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=#f4eaa2,#7c732e>▶: 애니메이션 기능 지원 / L: 다중 레이어 지원 / α: 알파값 지원
비트
<colbgcolor=#f5f0cb,#555131> 손실 압축 JPEG AVIF▶Lα · BPG▶α · FLIF▶α · HEIF · WebP▶α · RAW · DDS▶Lα · PSD▶Lα
무손실
압축
APNG▶α · DNG · EXRα · GIF · PCX · PNGα · RGBEα · TGAα · TIFF
무손실 무압축 BMPα
벡터 AI · CDR · SVG
}}}}}}}}}
관련 틀: 그래픽 · 오디오 · 비디오


1. 개요2. 이름3. 유형4. 특징
4.1. 정보 손실4.2. 작은 용량4.3. 이중 압축4.4. 순차 주사
5. 후속 포맷
5.1. Motion JPEG5.2. JPEG20005.3. JPEG XR (2009)5.4. JPEG XT (2015)5.5. JPEG XS (2019.5)5.6. JPEG XL (2019.12)
6. 유용한 jpg 압축 사이트7. 그 외
7.1. 압축률 향상을 위한 노력7.2. 확장자 드립7.3. 여담

1. 개요

Joint Photograph Experts Group의 약자로, 그림 파일 형식의 하나다.

정지 화상을 위해서 만들어진 손실 압축, 무손실 압축(JPEG 9.1부터) 방법 표준이다. 이 표준은 ISO와 ITU-T에서 제정하였다.( ISO 10918-1, 한국어 설명)

2. 이름

제이펙(J(제이), PEG(펙))이 공식 발음이지만 '제이피이지'라고 발음하는 사람도 있다.

JPEG를 사용하는 파일 형식들도 보통 JPEG 이미지라 불리며, .jpg, .jpeg, .jpe, .jfif 등의 확장자를 사용한다. 이름 바꾸기로 확장자를 바꿔도 문제가 없다. 다만 플랫폼에 따라서 .jpg만 인식하고 나머지는 인식을 못하는 경우도 있다.

3. 유형

JPEG 표준은 이미지가 어떻게 연속된 바이트로 바뀌는지만을 규정한다. 그 외 확장 방식(아마도 컨테이너 방식)에 따라 아래와 같은 몇가지 유형이 나뉘어진다.
  • EXIF-JPEG: 디지털 카메라의 사진 저장 방식이다. EXIF 방식의 메타데이터를 포함하여 사진을 찍은 시간, GPS, 카메라 정보 등을 기록한다.
  • JFIF: JPEG File Interchange Format으로, 인터넷에서 스트림 전송[1]에 적합한 형태로 이미지를 담는 파일 형식이다. 독립 JPEG 그룹(Independent JPEG Group; IJG)에서 만들었다.
  • 그 외: JNG와 같은 파일 형식도 있다.

4. 특징

4.1. 정보 손실

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

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

현재는 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로 그림을 보관하는 경우에는 편집을 대비해서 원본을 별도로 보관할 필요가 있다.

4.2. 작은 용량

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

4.3. 이중 압축

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

4.4. 순차 주사

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

5. 후속 포맷

5.1. Motion JPEG


비디오 코덱 및 포맷
{{{#!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=#a2bbf4,#2a4480>
<colbgcolor=#cbd8f5,#2b395a> MPEG-1 · MPEG-2 Part 2(H.262) · MPEG-4 Part.2 ( DivX · Xvid) · H.261 · H.263 · H.264 · H.265 · H.266
기타 WMV · Theora · VP8 · VP9 · AV1 · Apple ProRes · Bink · GoPro CineForm · Motion JPEG
컨테이너(확장자) ASF · AVI · BIK · FLV · MKV · MOV · MP4 · MPEG · Ogg · SKM · TS · WebM · WMV
}}}}}}}}}
관련 틀: 그래픽 · 오디오 · 비디오

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

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

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

5.2. JPEG2000

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

5.3. JPEG XR (2009)

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

5.4. JPEG XT (2015)

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

5.5. JPEG XS (2019.5)

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

5.6. JPEG XL (2019.12)

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

FLIF FUIF 구글 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]

6. 유용한 jpg 압축 사이트

  • MozJPEG # - 모질라 재단에서 만든 mozjpeg 라이브러리를 이용한 사이트이다. jpg를 압축하는 라이브러리 중 가장 성능이 뛰어난 것으로 알려져 있다. mozjpeg에 대한 자세한 내용은 후술.
  • Squoosh # - 구글에서 만든 이미지 압축 사이트(웹앱)이다. (소스코드 #) 레거시 JPEG를 개선한 압축(Browser JPEG, MozJPEG)을 할 수도 있고, 그외 다른 최신 포맷( AVIF JPEG XL등)으로의 압축도 지원한다.
  • Jpegmini # - 그 외 JPEG로 인한 화질 저하가 없으면서, 파일 용량을 줄이는 다른 사이트로 이 사이트가 있다. 사진 크기나 기타 다른 변환 없이 용량만 줄여준다. 다만, 업로드 시 JPEG 확장자만 지원한다.
  • Needs more jpeg # - 위 사이트랑은 정반대로, 화질이 손실되는 확장자라는 걸 조크로 삼아 이미지 화질을 확 내리는 needs more jpeg라는 사이트도 존재한다. 레딧에서도 봇이 존재한다. 아래는 Need more jpeg에서 변환한 이미지샘플이다.
    파일:9rkP2.jpg 파일:external/9a28a539f36d05e9fe754b47ed4cf3479d5896640ff0c407e75244098587f355.jpg

7. 그 외

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

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

7.2. 확장자 드립

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

7.3. 여담

  • SVG 파일을 카카오톡에 공유해서 다운을 받으면 이 형식이 된다.
  • macOS에서 .jpg 파일을 다운로드 받으면 .jpeg 확장자로 저장된다. 물론 Windows와 호환이 된다.


[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] 제일 원조는 libjpeg/SIMD이고, libjpeg/SIMD와 libjpeg-turbo 모두 SIMD 및 최신 CPU기술 활용을 통한 속도 향상에 중점을 두고 있다. [14] 2021년 기준, HEIF, AVIF의 경우 읽을 때 한박자 굼뜨기 때문에, WebP가 (아이폰이나 맥북을 쓰지 않는다면) 현 시점에서는 속도와 용량 밸런스가 적절하다. 아이폰이나 맥북을 쓴다면 범용성을 추구하면 mozjpeg등을 고려하고, 효율성을 추구하면 HEIF를 추천한다. [15] 사실 해당 상황은 소스 자체에 대한 JPEG의 한계이기 때문에 mozjpeg도 PNG에게 까이는 건 마찬가지다. 진짜 문제는 Guetzli는 너무 느리다. mozjpeg 정도의 느린 거야 최신 CPU의 힘으로 웃어넘길 수 있는 수준인 반면, Guetzli은 어지간한 HD급 게임 스크린샷 한 장 변환하는데도 몇 분이 걸릴 정도로 정말 한참 걸린다(...) [16] 구라제거기 제작자가 만든 것.