|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||JPEG File Interchange Format, Version 1.02|
JFIF is a minimal file format that enables JPEG bitstreams to be exchanged between a wide variety of platforms and applications. It does not include any of the advanced features (like tagged headers) found in the TIFF specification. JFIF conforms to the interchange format syntax specified in JPEG Standard (ISO/IEC 10918-1, Annex B); its only additional requirement is the mandatory presence of the application segment APP0 marker right after the SOI (Start of Image) marker.
JFIF_1_02 has been assigned PRONOM PUID fmt/44; the earlier versions have these PRONOM identifiers: JFIF v. 1.00, PUID fmt/42; JFIF v. 1.01, PUID fmt/43. The PRONOM Web page (consulted January 27, 2012) states that JFIF was developed prior to there being an official file format for JPEG encoding and thus JFIF "rapidly became a de facto standard." PRONOM also notes that "other types of compression are available through JPEG extensions, including progressive image buildup, arithmetic encoding, variable quantization, selective refinement, image tiling, and lossless compression, but these may not be supported by all JFIF readers and writers."
May be used in initial-state picture creation; often used for middle- and final-state archiving or end-user delivery.
|Relationship to other formats|
|Contains||JPEG, JPEG Image Encoding Family|
|May contain||JPEG_DCT_BL, JPEG DCT Compression Encoding, Baseline|
|May contain||JPEG_DCT_PRG, JPEG DCT Compression Encoding, Progressive|
|May contain||JPEG_EXT, JPEG Compression Encoding, Extensions|
|May contain||JTIP, JPEG Tiled Image Pyramid Format, not described at this Web site at this time|
|May contain||JPEG_orig_LL, JPEG Original Lossless Compression (ISO/IEC 10918)|
|May contain||JPEG-LS, JPEG Lossless Compression (ISO/IEC 14495)|
|Has earlier version||JFIF File Interchange Format, Versions 1.00 and 1.01, not described at this Web site at this time|
|LC experience or existing holdings||See JPEG|
|LC preference||See JPEG. The Library of Congress Recommended Formats Statement (RFS) includes JPEG/JFIF as a preferred format for photographs in digital form and other graphic images in digital form.|
|Disclosure||Fully disclosed. Developed by Eric Hamilton of C-Cube Microsystems and disseminated by Joint Photographic Experts Group ("jpeg.org"), the technical committee behind the ISO/IEC and ITU-T JPEG specifications.|
|Documentation||JPEG File Interchange Format, Version 1.02 (1992); available at http://www.jpeg.org/public/jfif.pdf.|
|Adoption||Very widely adopted, surpassing the use of either "raw" JPEG bitstreams or the SPIFF file format specified in ISO/IEC 10918, part 3.|
|Licensing and patents||None on the file format; see JPEG for patent claims on JPEG encoding.|
|Self-documentation||Limited but some techical metadata is provided by the application segment APP0, and some can be derived in other ways. For detail, see Action Plan Background: JFIF 1.02 (pp. 3-4) from the Florida Center for Library Automation (FCLA).|
|Technical protection considerations||None.|
|Normal rendering||Good support.|
|Clarity (high image resolution)||See JPEG_DCT_BL and JPEG_DCT_EXT.
According to the SPIFF article in the Encyclopedia of Graphics File Formats, "JFIF took a shortcut by attempting to require that all JFIF images have a gamma of 1.0. That requirement has been widely ignored because many pre-existing images have other gamma values, and, as it turns out, a gamma of around 0.4 to 0.5 is technically superior." SPIFF marks its files with the gamma value.
|Color maintenance||Support for color space support appears to be more limited than SPIFF; thus no support for sRGB 1 . ICC Profile version 18.104.22.168 (Specification ICC.1:2004-10, page 70) provides guidance for embedding ICC profiles in JFIF files as application data segments: "APP2 marker is used to introduce the tag . . . ICC tags are thus identified by beginning the data with a special null terminated bytes sequence 'ICC_PROFILE.'"|
|Support for vector graphics, including graphic effects and typography||No support for vector graphics.|
|Functionality beyond normal rendering||JFIF files (in version 1.02) can store thumbnails along with a larger image, including a means for defining thumbnails from source images with color space other than 24-bit RGB.|
|From the File Extension Source. The extension jpg is most frequently used.|
||For JPEG-LS files, according to ISO/IEC 14495-1 and PRONOM (see PUID: fmt/150).|
|Internet Media Type||image/jpeg
||From the IETF (Internet Engineering Task Force) RFC 2046.|
|Internet Media Type||image/jpg
|Additional MIME types selected from a larger set found at File Extension Source.|
|Magic numbers||Hex: FF D8 FF E0 xx xx 4A 46 49 46 00
|The 0xFF 0xD8 part of the string is universal to all JPEG encoded bitstreams; the remainder of the string is wrapper specific. The ASCII rendering is from Gary Kessler's File Signatures Table.|
|Wikidata Title ID||Q1676669
Paraphrased from James D. Murray and William vanRyper's Encylopedia of Graphics File Formats (O'Reilly and Assoc, 1994, ISBN 1565920589): The JPEG bitstream stores 16-bit word values in big-endian format. JPEG data in general is stored as a stream of blocks, and each block is identified by a marker value. The first two bytes of every JPEG stream are the Start Of Image (SOI) marker values FFh D8h. In a JFIF-compliant file there is a JFIF APP0 (Application) marker, immediately following the SOI, which consists of the marker code values FFh E0h and the characters JFIF in the marker data, as described in the next section. In addition to the JFIF marker segment, there may be one or more optional JFIF extension marker segments, followed by the actual image data.
|History||From http://www.jpeg.org/jpeg/index.html: "[T]he file format was created originally by Eric Hamilton, the then convenor of JPEG as part of his work at C-Cube Microsystems, and was placed by them into the public domain under the name JFIF (available here in the latest version, 1.02)."|
1The color space sRGB, standardized as IEC 61966-2-1, establishes an image viewing environment with a known color temperature (6500 degrees Kelvin) and gamma (2.2), thus increasing the user's ability to maintain color.