The assumption going into most fisheye shots is that a wider view means simpler data: fewer fine details, more sky, more blank wall, easier for a codec to handle. It’s a reasonable assumption. It’s also wrong in ways that cost you file size, export time, and occasionally visible quality loss at the edges.
Understanding why requires looking at what fisheye distortion actually does to the pixel data before any codec touches it — and then what happens when correction software tries to undo that distortion on the way out.
What the Distortion Is Doing to Your Pixels
A fisheye lens achieves its extreme field of view through a non-rectilinear projection. Where a standard rectilinear lens maps the scene so that straight lines in the world appear as straight lines in the image, a fisheye uses an equidistant or equisolid angle projection — the angular distance from the optical center is proportional to the distance from the image center in pixels, but spatial relationships between objects get progressively compressed toward the frame edges. The result is that a single frame can contain 180 degrees (or more) of scene information, squeezed into the same pixel count you’d use for a 24mm shot.
That compression toward the edges is the first problem for file size. The outer third of a fisheye frame is encoding a large angular range of the scene at high spatial frequency — lots of fine detail from a wide swath of reality packed into a relatively small portion of the image’s pixel area. JPEG and HEIF encoders work by dividing the image into 8×8 pixel blocks (for JPEG’s DCT step) or larger coding units (for HEIF’s HEVC backbone) and computing how much information can be discarded from each block without visible degradation. When those blocks contain chaotic, high-contrast edge detail — which compressed peripheral content often does — the encoder has less to discard. More bits get allocated per block.
A plain gray sky shot at 24mm compresses beautifully. The same gray sky occupying the edge of a fisheye frame, with architecture curving into it and fine brick texture warped across the periphery, does not.
Correction Adds Another Layer of Work
The more significant file size event happens when you apply lens correction to straighten the distortion. Most editing software handles this with a pixel remapping operation: every output pixel gets a new coordinate calculated from the correction transform, and the values at those new coordinates are interpolated from the original data. That interpolation step — whether the software uses bilinear, bicubic, or Lanczos resampling — generates a new pixel grid that has a subtly different noise and texture signature from the original.
What matters for export quality is where the pixels end up after correction. Fisheye correction pulls the edges of the frame outward and inward simultaneously to straighten curves. The outer corners get stretched — one original pixel’s worth of detail has to cover several output pixels, so the encoder is interpolating across a larger area. Meanwhile, the center of the frame gets compressed slightly. The result is a corrected image where edge sharpness is noticeably lower than what the lens actually resolved, not because the correction math was wrong, but because you’re asking a finite number of original pixels to cover more output area than they were captured to fill.
If you’re exporting that corrected file as JPEG, you’re then running a lossy quantization step on top of an already-interpolated pixel grid. The DCT has to represent interpolated texture at the stretched edges — texture that is already slightly soft and slightly artificial — and any ringing or blocking artifacts tend to be more visible there than in the center of the frame.
This is one reason why the standard advice to keep lens correction non-destructive until export has real mechanical merit: if the correction is baked into the pixels at an intermediate stage and you save a JPEG, the next export step is quantizing already-degraded data.
The Crop Factor Nobody Mentions
After a full correction of heavy fisheye distortion, you typically lose the corners of the frame entirely — they either fall outside the output canvas or show the black void at the edges of the image circle. Most software crops automatically. That crop removes real pixels, which means your corrected output file has fewer pixels than your uncorrected original, sometimes considerably fewer.
This matters for file size in a counterintuitive direction: the corrected file may end up smaller in byte count than the uncorrected one, not because quality improved but because there’s less content. A smaller pixel dimension encodes in fewer bytes. If you’re judging export quality by output file size — comparing the corrected and uncorrected versions and concluding the corrected one “compressed better” — you may be reading it backwards. You lost resolution, not entropy.
The practical implication: if you need to deliver a fisheye image at a specific pixel dimension for print or social, factor the post-correction crop into your capture resolution. A social media export workflow that targets 2048 pixels on the long edge may need source material at a significantly higher resolution if significant correction and cropping will occur beforehand.
Export Format Choices That Actually Matter Here
For uncorrected fisheye images — raw distortion intact, intended for creative use — JPEG at a moderate quality setting handles the format reasonably well, since the codec doesn’t know or care that the perspective is unusual. The high-frequency edge content will drive up file size relative to a standard wide shot, but there’s nothing anomalous about how the codec processes it.
For corrected fisheye images, the format choice matters more:
- TIFF or PNG as intermediates: If you’re correcting in one application and finishing in another, save the corrected intermediate as a lossless format. Re-encoding a corrected JPEG as a second JPEG runs the DCT quantization step twice on interpolated data, which compounds ringing artifacts at stretched edges.
- JPEG quality 85–92 for final delivery: Below roughly 80, blocking artifacts at the corners of heavily corrected fisheye shots become visible faster than they would in a standard shot, because the interpolated texture there is already lower-contrast and the encoder doesn’t have clean structure to work with.
- HEIF for mobile delivery: HEIF’s larger coding units and inter-prediction tools handle the smooth gradients in corrected fisheye corners somewhat more gracefully than JPEG’s 8×8 DCT blocks, though at equivalent visual quality you’ll see smaller files than JPEG regardless of source material.
For anyone comparing format tradeoffs on this kind of image, our Image Quality coverage covers the underlying mechanisms — chroma subsampling behavior, resampling algorithms — in more depth than we can do justice to here.
What to Actually Check Before You Export
The concrete thing to verify before committing to a final export from a corrected fisheye file:
- Zoom to 100% on the far corners after correction is applied but before export. If the interpolated texture looks visibly smeared, consider whether you had enough resolution to begin with — no export setting fixes a shortage of source pixels at the edges.
- Compare corrected dimensions to your delivery target. If the corrected canvas is already close to your target size, don’t upsample — export at native resolution and let the delivery platform resize if needed.
- If exporting JPEG, check corner quality specifically, not just center sharpness. The quantization artifacts in corners of corrected fisheye shots are the first thing to degrade under aggressive compression, and they’re easy to miss when you’re evaluating a full-frame preview.
- For print output, apply sharpening to the corrected output with the stretched corners in mind. Some workflows apply sharpening uniformly, which means the already-soft corners get the same sharpening radius as the sharp center — undersharpen the center while the corners still look blurry. Output sharpening targeted to the actual resolution at each region of the frame, rather than a blanket setting, gives more consistent results across the image.
The fisheye’s extreme geometry doesn’t break any codec. But it does hand the codec an unusual distribution of information — dense and chaotic at the edges before correction, interpolated and soft after it — and understanding that distribution is what lets you make export decisions that hold up at delivery size.