Summary
If you’ve ever dealt with images on your computer, you’ve likely come across both JPG and JPEG files. They look the same, behave the same in software, and for all intents and purposes, are exactly the same. So if you’ve wondered why we still have them both, the answer lies in the limitations of early computers, not in terms of image quality, compatibility, or file size. JPG and JPEG are the same file wearing different hats Rename it all you want, not a single pixel changes Renaming photo.jpg to photo.jpeg does not convert, recompress, or otherwise modify the image at all. The encoded data remains untouched, so its resolution, colors, quality, and file size remain exactly the same. Modern image editors, browsers, operating systems, and photo viewers generally recognize both extensions without distinction. They’re even the same media type. The Internet Assigned Numbers Authority lists both jpg and jpeg as extensions for the image/jpeg media type, which is exactly what web servers and browsers use to identify JPEG images online. In fact, browsers primarily rely on the media type provided by a server rather than the extension at the end of the filename. JPEG is technically the correct name for the format though. It stands for Joint Photographic Experts Group, the committee that developed the standard. Its core technology was published as ITU-T Recommendation T.81 all the way back in 1992 and later as ISO/IEC 10918-1. JPG, on the other hand, is simply a shorthand name for the format. Blame a three-character filename limit from the DOS era MS-DOS had eight characters, three for the extension, and zero patience The missing E in JPG is the result of the 8.3 filename convention used by MS-DOS and older versions of Windows. Under this system, a filename could contain up to eight characters before the period and no more than three characters after it. Microsoft still documents this structure as an 8.3 filename. This limitation meant that older PCs couldn’t show a name like image.jpeg as a filename. The four-character JPEG extension wouldn’t fit into the three-character extension field, so PC software ended up shortening it to JPG, and hence two names for the same extension were born. Windows 95, along with Windows NT 3.5, fixed this limitation by introducing the VFAT extension to FAT, allowing filenames as long as 255 characters while preserving shortened aliases for compatibility with older programs. By then, however, JPG was already deeply established. Cameras, image editors, websites, and software libraries had adopted it, so there was no reason to remove it even after the original technical limitation no longer existed. The 8.3 rule is older than Microsoft, and nobody remembers why CP/M chose it, DOS copied it, and your photos inherited it Microsoft wasn’t the one to invent the 8.3 restriction either. MS-DOS inherited the 8.3 convention from CP/M, an operating system created for early microcomputers in the 1970s. Microsoft deliberately made DOS behave similarly to CP/M so that existing software and development practices could easily carry over. So why did CP/M choose exactly eight characters and a three-character extension in the first place? Well, no one seems to have an obvious technical explanation for that, including Microsoft developer Raymond Chen, who writes about Windows history and says he doesn’t know why. His guess is that eight characters may simply have seemed convenient to CP/M’s designers at the time. As a result, a seemingly random decision made for 1970s computers forced JPEG to lose a letter on DOS machines decades later, and that shortened spelling remains common practice today. This also explains why so many familiar extensions contain three letters, including the likes of TXT, EXE, BMP, GIF, PNG, and so on. Modern file systems can handle much longer extensions, but the conventions created under old restrictions have survived so far because changing them can break software as well as user expectations. JPEG is a compression recipe, not a filename flex Lossy, blocky at high compression, and allergic to transparency JPEG is primarily a compression standard rather than a simple container format. It defines how image information is encoded into and decoded from a compressed stream of data. Common JPEG files usually package that data using JFIF or Exif conventions, with Exif being the popular choice for camera photos and their metadata. Ordinary JPEG compression also tends to be lossy. An encoder divides image information into small blocks, applies a discrete cosine transform, and quantizes the resulting coefficients, discarding some data along the way to reduce file size. This lets you increase compression to get a smaller file size, but also has the side effect of adding visible blockiness, ringing around sharp edges, and smeared fine detail. That makes JPEG well suited for photographs and other continuous-tone images, but less so for screenshots, diagrams, small text, or graphics with hard edges. Standard JPEG files also lack an alpha channel, meaning they cannot have transparent backgrounds. PNG, WebP, or AVIF are much better choices when transparency or exact pixel reproduction is what you want. That said, none of this changes when JPEG becomes JPG or vice-versa. Compression quality comes from an encoder setting used when the file is saved, not the number of letters in the file extension. Just pick one, the internet doesn’t care which Use JPG unless a cranky upload form insists otherwise JPG is the practical default simply because it’s shorter and extremely common. Using JPEG is just as fine, especially if you want the filename to match the format’s full acronym.The only time this choice matters is when you’re working with poorly written or extremely old software, such as rigid upload forms or scripts that accept one extension but not the other. However, that is an implementation problem that you’re extremely unlikely to run into. In the end, unlike most other file formats, JPG versus JPEG isn’t a question of quality or technology. It’s a tiny piece of computing history: one image format, two extensions, and a missing letter caused by a filename rule inherited from an OS designed in the 1970s.