Why JPEG Rarely Used Arithmetic Coding

This article explores why Arithmetic coding was virtually absent from commercial JPEG files despite being an official part of the original 1992 specification. Although Arithmetic coding provided 5% to 10% better compression efficiency over Huffman coding, its widespread adoption was stopped by aggressive patent licensing restrictions, severe computational complexity on 1990s hardware, and a lack of software compatibility that made files unreadable to the average user.

Patent Enclosure and Licensing Fees

The primary deterrent to Arithmetic coding was intellectual property. During the development of the JPEG standard, key techniques behind binary arithmetic coding were patented by major technology firms, most notably IBM, AT&T, and Mitsubishi. These companies held patents on the "Q-Coder" and its variants, which the JPEG standard adopted for its arithmetic mode.

Because of these patents, any software developer, operating system vendor, or camera manufacturer wanting to read or write arithmetic-coded JPEG files faced the prospect of negotiating patent pools and paying licensing royalties. In contrast, Baseline JPEG using Huffman coding was explicitly designed to be patent-free. Developers and commercial enterprises chose the royalty-free alternative to eliminate legal liability and licensing costs.

Computational Complexity

When the JPEG standard was finalized in 1992, typical consumer computing hardware had severe performance limits. Arithmetic coding is inherently serial and computationally expensive compared to Huffman coding.

Huffman coding relies on static or pre-calculated look-up tables to translate symbols into variable-length bit strings, a process easily handled by primitive CPUs and low-cost digital signal processors (DSPs). Arithmetic coding requires continuous mathematical interval subdivisions and precision arithmetic on every single symbol. In the early to mid-1990s, encoding or decoding an image using Arithmetic coding created noticeable latency on personal computers and digital cameras. The marginal gain of 5% to 10% in file reduction rarely justified the massive penalty in processing time and power consumption.

The Compatibility Deadlock

The JPEG specification defined a minimal "Baseline" profile that every standard-compliant decoder was required to support. Baseline JPEG mandated Huffman coding; Arithmetic coding was classified as an optional extension.

Because Baseline JPEG was universal and royalty-free, virtually all software vendors—including early web browsers like Mosaic and Netscape Navigator, and operating systems like Windows and classic Mac OS—only implemented Baseline Huffman decoding. If a user saved an image with Arithmetic coding, almost no other computer could open it. This created a network effect: users could not distribute arithmetic-encoded images because decoders were unavailable, and software developers had no incentive to build arithmetic decoders for files that did not exist.

Late Patent Expiration

The core patents covering Arithmetic coding in JPEG began expiring in the mid-2000s. While open-source libraries like libjpeg eventually introduced support for arithmetic-coded JPEGs without legal threat, the format arrived decades too late. By that time, storage capacities and network bandwidth had expanded drastically, diminishing the value of a 10% size reduction. Furthermore, billions of legacy devices and software programs were permanently locked to Huffman decoding, solidifying Huffman coding as the permanent standard for commercial JPEG images.