JFIF는 JPEG File Interchange Format의 약어이고, JPEG는 Joint Photographic Experts Group의 약어입니다. JFIF는 JPEG 이미지 데이터를 저장하는 파일 형식으로, 서로 다른 프로그램과 컴퓨터에서도 이미지를 열 수 있게 해 줍니다.
JFIF 버전은 JPEG 파일 내부의 메타데이터 필드입니다. 파일이 따르는 JFIF 규격의 버전이 무엇인지, 예를 들어 1.01 또는 1.02인지 알려 줍니다. 이 필드는 JPG 파일에서 찾을 수 있으며, JFIF는 JPEG 이미지 전용 형식입니다.
JFIF가 JPEG 이미지에 더하는 것
JPEG 표준은 이미지 데이터가 어떻게 압축되는지를 정의합니다. JFIF 파일은 APP0 세그먼트라고 하는 데이터 블록이 하나 더 들어 있는 일반 JPEG 파일입니다. 이 블록은 이미지가 시작되는 마커 바로 다음에 위치합니다.
APP0 세그먼트의 데이터는 JFIF 텍스트로 시작합니다. 이 세그먼트에는 압축된 이미지 데이터에 포함되지 않은 정보가 저장됩니다.
- JFIF 버전
- 해상도 단위가 인치, 센티미터 또는 단위 없음 중 하나인 가로 및 세로 픽셀 밀도
- 프로그램이 두 밀도 값을 이용해 계산하는 픽셀 종횡비
- 썸네일이라고 불리는 선택적인 작은 이미지 미리보기
JFIF는 색상 모델도 정의합니다. JFIF 이미지는 밝기만 있는 1개 채널 또는 YCbCr 색 공간의 3개 채널을 가집니다.
어떤 파일에 포함되어 있는지
MIME 타입 image/jpeg는 JFIF 형식의 JPEG 이미지용으로 정의되었습니다. 확장자 .jpg, .jpeg, .jpe, .jif, .jfif는 모두 이 형식에 속합니다. 따라서 이름이 .jfif로 끝나는 파일은 .jpg 파일과 같은 종류의 이미지를 담고 있습니다.
디지털 카메라는 보통 JPEG 사진을 Exif 형식으로 저장합니다. Exif는 주로 APP1 세그먼트에 메타데이터를 저장하며, 이 세그먼트도 이미지 시작 직후에 위치해야 합니다. 두 세그먼트 모두 가장 먼저 와야 하기 때문에, 하나의 파일이 동시에 JFIF와 Exif를 따를 수는 없습니다.
일부 프로그램은 여전히 Exif 세그먼트 앞에 JFIF 세그먼트를 기록합니다. 이런 파일에서는 JFIF 버전과 Exif 버전을 모두 볼 수 있습니다.
값이 어떻게 표시되는지
JFIF 버전은 2바이트로 저장됩니다. 첫 번째 바이트에는 주 버전이, 두 번째 바이트에는 부 버전이 담깁니다. 버전 1.02는 01 및 02 바이트로 저장됩니다.
ExifTool은 이 필드를 JFIFVersion으로 표시합니다. 주 버전, 점, 두 자릿수 부 버전 번호를 출력합니다. 형식 레지스트리에는 JFIF 버전이 3개로 나와 있습니다.
1.00: 초기 규격 버전1.01: 1.02 이전 버전1.02: 1992년 9월 1일의 버전
값이 어디에서 오는지
JPEG 파일을 저장하는 프로그램이 APP0 세그먼트와 그 안의 버전 번호를 기록합니다. ITU는 2011년에 JFIF를 권고 T.871로 발표했으며, ISO와 IEC는 같은 내용을 ISO/IEC 10918-5로 발행합니다. 이 표준은 1.02 버전을 기반으로 하며, 이를 따르는 파일은 값 1.02를 저장해야 합니다.
libjpeg 라이브러리를 기반으로 한 프로그램은 기본적으로 1.01을 기록합니다. 라이브러리 문서에서는 프로그램이 1.02 버전의 확장 세그먼트를 추가하는 경우 1.02로 설정하라고 안내합니다. 따라서 오늘 저장된 파일에서도 1.01 또는 1.02가 나타날 수 있습니다.
내 파일에 왜 중요한지
버전 값은 프로그램이 JFIF 데이터를 읽을 수 있는지 알려 줍니다. 규격에 따르면, 파일의 주 버전이 프로그램이 지원하는 주 버전과 일치하면 보통 해당 파일을 디코딩할 수 있습니다.
버전은 파일에 어떤 썸네일을 포함할 수 있는지도 보여 줍니다. JFXX라는 확장 세그먼트는 1.02 버전 이후에만 허용됩니다. JFXX 세그먼트에는 JPEG로 압축된 썸네일이나 비압축 썸네일을 저장할 수 있습니다.
JFIF 버전이 없는 JPEG 파일에는 JFIF 세그먼트가 없습니다. 이는 카메라가 Exif 형식으로 저장한 사진에서 일반적인 현상입니다.