Saturday, January 7, 2023

Finding the mythical "compromise crop" between 4:3 and 16:9



I was watching a DuckTales movie from 1990 on Disney+, which was almost certainly originally 4:3, but it was presented in widescreen with thinner-than-usual pillarboxes. So that got me looking for the only good compromise for viewing zoomed-in 4:3 content on a 16:9 display: zooming in just enough to keep the original aspect ratio, but without cropping all the way so as not to lose too much information on the top and bottom of the screen.

This is what I'm talking about: 


The area in green is the full 16:9 1080p image. The area in black is the 4:3 image. The area in red is the left and right sides of the zoomed-in 4:3, with the empty selection on the top and bottom showing what's cropped.

Getting the numbers in GIMP:

1080p is 1920x1080.

4:3 content in a 1080p frame is 1440x1080.

The remaining pillar bars (the green in my illustration) have a width of 240 pixels each.

Half of 240 is 120 (this is the "compromise" part), so in GIMP I had to create a rectangle from the inner columns (the red in my illustration) with the Rectangle Select Tool until it said the rectangle was 1.33:1. (1.33:1 = 4:3). 

The numbers I got were 1680x1260... but I could be off a few pixels. It needs to reduce to exactly 4:3...

1680/420=4

1260/420=3

So yeah, 1680x1260 is what I need for a 4:3 clip before chopping it for the compromise crop.

In practice, what this means starting with a 1080p raw capture, I have to:

  1. Crop from 1920x1080 to 1440x1080 (that is, crop 240 on the left and right) to get a clip that's 4:3.
  2. Resize the clip to 1680x1260. Luckily this is still mod16 for quick, clean, no-fuss resizing with BicubicResize.
  3. Because 1260-1080=180, I need to crop 90 off the top and bottom. Clip so far is 1680x1080.
  4. Because 1920-1680=240, I need to add 120 to the left and right. Clip is now 1920x1080.
In AviSynth: 
.Crop(240,0,-240,0).BicubicResize(1680,1260).Crop(0,90,0,-90).AddBorders(120,0,120,0)

Bonus: Resolution cheat sheet

No comments:

Post a Comment