FixPhotoQuality

Upscaling · June 8, 2026

Upscale photo math for a 1600px FinePix frame that had to become a 16 by 20

The job was to upscale photo DSCF1844, a 1600px frame from a 2011 point-and-shoot, for a 16 by 20 inch print.

Before and after of a ceramic lamp on an oak desk. Left is the pixel damage. Right is the same photograph kept sharp.
Before and after of a ceramic lamp on an oak desk. Left is the pixel damage. Right is the same photograph kept sharp.

A 1600 px FinePix frame and a 16×20 print do not share a pixel budget. Count the pixels for a poster before you pay for an 8× pass.

The lab form said upscale photo, and the file under that line was DSCF1844.JPG. It is 1600 by 1200, a Fujifilm FinePix frame from August 14, 2011, 4:42 in the afternoon. The EXIF still has the date, 6.4 mm at the wide end, ISO 200, 1/400, f/4.5. The picture is my client's aunt and uncle on a porch in Maine, cedar shingles, a red lobster buoy at the left edge, a window reflecting a chair. She wants it as a 16 by 20 inch print in a hallway. I make these enlargements for families who kept the camera and lost the cable, and the form's two words are not a method. They are a wish.

TL;DR. DSCF1844.JPG is 1600 by 1200, a real camera JPEG, not a crushed thumbnail. The picture is 4:3 and a 16 by 20 sheet is 4:5, so a full-bleed crop would have cut the buoy. I kept the whole frame and printed 20 by 15 inches on that sheet with a margin. A 4x pass healed a split shingle and painted a person into the window. A 2x pass did not. I resized the 2x file to 4000 by 3000, about 200 pixels per inch at the print, and the lab accepted it after seeing the false figure. No face restore. The aunt's mouth had already been rewritten once, on a test I did not ship.

The card still had the small JPEG

She found the SD card in a tin with beach tags. The camera had been set to the 2 megapixel mode, which is why a 2011 FinePix that could have written something larger wrote 1600 by 1200. There are 140 JPEGs on the card. Most are the same porch, the same buoy, a few of the rocks. DSCF1844 is the one where both people are recognizable and the buoy is fully in frame. DSCF1841 is sharper and cuts the buoy in half. She chose 1844. I did not talk her into the sharper crop. The buoy is why the picture exists. Her uncle painted it that June and died in the winter. I am not cropping his paint off to win a resolution argument.

The JPEG is a camera JPEG, quality high enough that the sky is not a stack of ugly blocks. If I zoom the blue above the roofline I see mild quantization, a little posterization in a band, not the marketplace mush I get from listing photos. The limit here is the sample count. Each shingle course is about eight pixels tall. The buoy's rope is two pixels of light fiber against the red. The faces are about forty pixels from chin to hair. That is a real photograph of a porch that was sampled coarsely. It is a better starting point than a screenshot, and it is still a small starting point. I wrote the pixel size on the folder before I wrote the print size, so I would not let 16 by 20 become the only number in the room.

I made two controls the same day. porch-nearest-3200.png repeats every pixel as a 2 by 2 stamp. porch-bicubic-3200.png blends. The nearest file is how I show a client the budget. The buoy's white stripe, one pixel in the source, becomes a stair. The bicubic file turns the stair into a soft ribbon. Neither file knows that the stripe was paint. They only know the samples. The generated picture I keep for this conversation is not Maine. It is a flat sample that goes blocky the same way the nearest-neighbor porch goes blocky, and it is easier to look at than a dead uncle's buoy while we talk about stairs.

Close crop of a ceramic lamp on an oak desk with pixel damage, the problem this guide is measuring.
Close crop of a ceramic lamp on an oak desk with pixel damage, the problem this guide is measuring.
The same crop of a ceramic lamp on an oak desk without the pixel damage, kept for comparison.
The same crop of a ceramic lamp on an oak desk without the pixel damage, kept for comparison.

A 16 by 20 is a sheet

The lab template is a 16 by 20 inch sheet. People say that size as if it were the picture's shape. It is the paper. DSCF1844 is 1600 by 1200, which is 4:3. The sheet, if you orient it with the long side horizontal, is 20 by 16, which is 5:4, or 1.25 to 1. The picture is 1.333 to 1. Those are not the same rectangle.

If I scale the picture until it covers the sheet, the height fits and the width has extra. The extra is real porch. On the left it is the buoy and a bit of shingle. On the right it is the uncle's elbow and the porch post. Covering a 20 inch width with a 4:3 frame, using the full 16 inch height, throws away a strip. I measured it on a overlay. About 6 percent of the width, split if I center the crop, which is enough to shave the buoy's outer edge and the uncle's sleeve. She looked at the overlay named porch-fullbleed-crop.jpg and said no before I finished the sentence.

So the print is not full bleed. The picture runs 20 inches on the long side and 15 inches on the short side, centered on the 16 by 20 sheet. Half an inch of paper shows above and below. The lab calls that a margin and tried to sell a larger crop. I wrote FULL FRAME, MARGIN OK in the ticket. The hallway frame she bought is a 16 by 20 with a mat that covers the margin anyway. The mat was the whole argument. Once the mat hides the paper, the bleed question is a lab preference, not a picture.

I have enlarged older prints than this, scans of scans, and the decisions are meaner when there is no EXIF and no card. That work is how to enlarge old photos. This card is from 2011. We are not reconstructing a lost negative. We are spending a known pixel budget on a known sheet.

What the lab's 300 was asking me to invent

The ticket wants 300 pixels per inch at the output size. For a 20 inch long side that is 6000 pixels. I have 1600. 6000 divided by 1600 is 3.75. A 4x file is 6400 by 4800, which clears 6000 with room to crop. A 2x file is 3200 by 2400. At 20 inches, 3200 pixels is 160 pixels per inch. If I then bicubic the 2x up to 4000 on the long side, I get 200 pixels per inch at 20 inches, and the second step is a blend, not a new guess.

I stood in the hallway where the frame will hang. The viewing distance is a walk past, about four feet, sometimes a stop at arm's length if someone is telling the buoy story. At four feet I do not need 300. I have printed 180 that looked fine in that kind of hall and 120 that looked soft. 200 is a number I can defend if the pixels are cautious. 300, built as a 3.75x invention from eight-pixel shingles, is a number that flatters the ticket.

I sent the lab a note with those divisions and asked if they would print a 4000 by 3000 file. They answered with the template language. 300 or it will look soft. I printed two letter-size proofs on my own inkjet, same crop, labeled in the margin so nobody could mix them. Proof A was the 2x-then-bicubic file. Proof B was the 4x file scaled down to the same proof size, so the comparison was content, not scale. She took them to the porch light. Proof B was crisper in the shingles and wrong. That visit is the rest of this note.

The mechanism of why a longer scale invents more is written up in how AI upscaling works. I ran the files through the AI image upscaler and the 4x upscale path, and I am going to talk about the shingle and the glass, not about the network.

The gap under the gutter

On the source, under the gutter at the upper left, one shingle is split. The gap is a dark nick about three pixels wide, and the course line beside it jogs. The uncle never patched it. The aunt told me that on the phone before I had zoomed in, which is the order I prefer. If I find the nick first and she explains it second, I cannot talk myself into healing it.

porch-sr2x.png is 3200 by 2400. The nick is still a nick. It is softer, about six pixels, and the jog in the course remains. The cedar color varies the way weathered cedar varies, blotchy, a few courses grayer where the rain hits. I can believe this porch.

porch-sr4x.png is 6400 by 4800. The courses have become even. The nick is gone. In its place is a shingle edge that lines up with the neighbors, and a faint repeated knot pattern that shows up every few shingles like a stamp. I counted the knots across one course. In the source I see two dark knots, irregular. In the 4x I see seven, spaced almost evenly. Weathered cedar does not do that. A texture prior does.

I cropped the region to shingle-src.png, 200 by 120, and shingle-4x.png from the same corners. She put her finger on the healed gap and laughed once, not happily. He would have liked the house to look kept, she said, and it was not kept. Pro the gap.

There is a second, smaller lie in the 4x cedar. The grain runs in little consistent arcs. The 2x grain is dumb and streaky, closer to what eight pixels can know. Dumb and streaky is the honest enlargement. I would rather see streaky cedar at four feet than a renovated wall.

The buoy survived both passes better than the wall. The red is a large simple shape, and simple shapes give a model less room to narrate. The rope gained a twist at 4x that the 2x only hinted at. She said the rope was twisted, so I allowed that as a plausible continuation, and then the window made the 4x unshippable anyway. A right rope does not buy a wrong person.

The person who was not in the glass

The window is to the right of the aunt's head. In DSCF1844 it is dark green, a reflection more than a view inside. I cropped window-src.png at 180 by 140. In that crop I can talk myself into a chair back, a vertical that might be a lamp, and a bright smear that is sky reflected in the upper pane. I cannot talk myself into a face. There is no face-shaped cluster of pixels. There are maybe thirty pixels of ambiguity.

porch-sr4x.png puts a person there. A pale head, a shoulder, something like a collar, standing behind the glass as if a cousin had walked through the room. The head is about ninety pixels tall in the 4x file, which would be a little over twenty source pixels of invention piled on a reflection. I do not think the model "saw" a cousin. I think dark vacation windows often contain people, and the prior cashed that in.

I showed her window-4x.png with the source crop beside it. She said the chair is the wicker one that used to sit under that window, and the lamp is the lamp, and nobody was standing. She was on the porch. She would have seen a person in the room. I believe the woman who was on the porch over the file that has a collar.

I ran one more 4x with the creativity pulled down, porch-sr4x-low.png. The head thinned. It did not leave. A smear with a brighter oval remained, and once you have seen it as a head you cannot stop. Lower creativity is not a truth switch. It is a quieter invention. The nick in the shingle also stayed healed in that file. Two strikes. The low file went into _rejected with the full 4x.

This is the same family of failure as a product photo that grows a pattern the product never had, which I wrote up around a lamp in ai image upscale. The porch is not that lamp. The lesson I carried over is narrow. Look for new objects, not for overall crispness. A new person is a new object.

Faces, tested once, not used

The aunt's face in the source is forty pixels tall, sunglasses on her head, mouth open mid-sentence. The uncle is turned, a profile of about thirty-five pixels, ear and nose clear enough that you know him if you knew him. I duplicated the 2x file and ran a face pass on the duplicate only, saved as porch-faces.png. I wanted the test in the folder so I would not wonder later if I had been lazy.

The aunt's mouth changed. The open mid-word shape became a closed smile with a neat corner. The sunglasses gained a sharper brand-like glint. The uncle's ear grew a defined lobe the source does not resolve. From the hallway these would have read as "clear faces," which is what the form asked for. At the table she said the mouth was wrong. He was listening, she said, he was not doing that smile, and she touched the uncle's face on the proof, not her own. The pass had edited him more than she wanted, and her too.

I flattened nothing from porch-faces.png into the print. Face tools are for files where the person is large enough that the tool is mostly deblurring, not casting. Forty pixels is casting. I wrote NO FACE PASS on the ticket in the same ink as FULL FRAME.

Skin in the plain 2x is waxy if you pixel-peep and fine at four feet. I can live with waxy. I cannot live with a new smile on a man who is not here to correct it.

The file that went to the lab

porch-sr2x.png at 3200 by 2400, then a bicubic resize to porch-2x-to-4000.jpg at 4000 by 3000. That is the shipped file. 4000 divided by 20 inches is 200. The bicubic step from 3200 to 4000 softens the 2x a little and does not have the freedom to grow a cousin in the glass. I checked the window after the resize. Still a chair. Still a lamp. Still no collar.

I checked the shingle nick. Still open. Softer than the 2x, still a dark jog. I checked the buoy's outer edge against the left border of the file. Two pixels of red remain before the edge. The margin on the sheet would have saved it anyway. I still wanted the red inside the file, in case a later operator ignores FULL FRAME and bleeds the long side. They did not. I am glad the pixels are there regardless.

Color: the FinePix JPEG is a little green in the shadows, the way that generation often is. I pulled the shadow green down until the cedar matched a daylight photo she took of the same wall in 2019, wall-2019.jpg, which is not a substitute frame, only a reference for the paint. The buoy red I barely touched. It was already the loudest thing on the porch and the lab's paper would dull it. On the contract proof the red stepped down and stayed red. Good.

Sharpening after the bicubic: a small unsharp mask, radius 0.7, amount 35, threshold 3, on a copy. The rope picked up a halo. I undid it. The 2x file was already crisp enough at 200 pixels per inch, and a halo on a two-pixel rope prints as a white wire around the buoy. No final sharpen. The softness at arm's length is the 1600 pixel source telling the truth.

The lab printed it. They wrote "customer accepts below-spec ppi" on the ticket, which I will take. The frame is in the hall. At a walk it is a porch. At a stop you can see the nick if you know to look. You cannot see a man in the window. That is the job finished.

What I would have needed for a real 300

A 300 pixel-per-inch, 20 inch print wants 6000 honest pixels. This camera, set to a larger mode, might have written them in 2011. The mode was wrong and the afternoon is over. No upscale photo pass manufactures the missing samples from the shingles. It manufactures shingles.

If she finds a 4000 pixel frame from the same hour, I will start over and probably not upscale at all. DSCF1839 through DSCF1850 are the sequence. I opened all of them. None is larger. One, DSCF1847, is the same wall with better focus and no people. She does not want that one in the hall. Focus is not the only fact.

For a smaller print, an 11 by 14 of the full frame, 1600 pixels is already about 114 on the long side if I map 1600 to 14 inches. That would look a bit soft and it would not require a model. I offered it. She had bought the 16 by 20 frame. We spent the model budget carefully instead of changing the furniture.

  • Keep the card. The 1600 pixel JPEG with EXIF beat every guess I could have made from a social-site download.
  • Overlay the sheet before you scale. 4:3 on 4:5 is a crop, and the crop may eat the object the print is for.
  • Proof the 2x and the 4x at the same physical size. Do not compare them at 100 percent, where the 4x always looks busier.
  • Hunt for new objects in glass, mirrors, and dark doors.
  • Hunt for repeated texture that is too even. Knots on a timer are a stamp.
  • Leave faces alone when they are a few dozen pixels tall and the person cannot sit for a new picture.

Which file is the print

FilePixelsRole
DSCF1844.JPG1600 by 1200Camera original. Gap, buoy, no person in the glass.
porch-nearest-3200.png3200 by 2400Stamp control. Shows the budget. Not printed.
porch-bicubic-3200.png3200 by 2400Blend control. Soft ribbon rope. Not printed.
porch-sr2x.png3200 by 2400Cautious upscale. Gap survives. No new person.
porch-sr4x.png6400 by 4800Rejected. Healed shingle, figure in the window.
porch-sr4x-low.png6400 by 4800Rejected. Quieter figure, gap still healed.
porch-faces.png3200 by 2400Face pass test. Aunt's mouth rewritten. Not used.
porch-2x-to-4000.jpg4000 by 3000Shipped. 200 pixels per inch at 20 by 15.

Eight files, one in the frame. The other seven exist so I can explain the one.

The form can keep its two words. I will keep the margin, the nick, and the empty glass. An upscale photo request names a size. The picture names the limits. When those disagree, I print the picture smaller in spirit than the form asked, even if the sheet is large, and I write the disagreement on the ticket where the next operator can see it.

Questions that come up after the file is open

Is 1600 pixels wide enough for a 16 by 20 inch print?

Not as a full-bleed 300 pixel-per-inch file. The sheet and the picture also have different shapes, so filling the sheet crops the frame. I printed the full 4:3 picture at 20 by 15 inches, about 200 pixels per inch, which holds up in a hallway.

Did the 4x upscale photo look better than the 2x on the porch?

It looked sharper and it lied. The split shingle under the gutter healed, and a pale figure appeared in a window that only held a chair and a lamp. The aunt rejected that file on those two facts. Sharp was not the test.

Should faces on a small vacation frame get a separate face restore?

Not on this one. A face pass changed the aunt's mouth. The faces are about 40 pixels tall in the source, which is not enough to rebuild a likeness I would sign. The shipped print uses the cautious 2x pixels for the people.

The lab ticket says 300 ppi or they will refuse the file. What then?

Show them a proof at viewing distance before you invent pixels to satisfy the ticket. This lab accepted 200 after they saw the 4x reflection. If a lab will not, print somewhere that will, or print smaller. Do not mint a person in the glass to clear a form.