The rectangle behind the lens

A rolling frame on a bend is right at its centre

Read a camera car's frame row by row as it rounds a bend and every still point moves — except the bend's centre, at every height, and the horizon row, at every depth. Each mark's displacement is its streak scaled by its row time, so the rolling frame is undistorted wherever the global one is sharp. And the usual repair makes it worse: a gyroscope that undoes the turn row by row puts 0.73 px back into the centre and is a net loss everywhere nearer than twice the bend's radius.

Worth reading first: A frame is an interval · Every row is a different camera.

A camera on a bend is sharp on a circle put a camera car on a fifty-metre bend at ten metres a second, aimed into the bend, and found that one exposure of a thirtieth of a second blurs the still world everywhere except at the bend’s centre. Off the axis the sharp place comes nearer as the cosine of the bearing, on the circle through the camera and the centre; above the ground only the vertical line through the centre stays sharp. The two motions — the turn, which moves every point alike, and the travel, which moves near points more — cancel on that circle.

Every frame in that essay was taken with a global shutter, all rows at once. Most cameras on vehicles read their sensor a row at a time, so each row is a picture taken at a slightly different point on the bend, turned by a slightly different amount. A turning frame can be straightened found that a pure turn read row by row can be undone exactly, because a turn moves every point by an amount that does not depend on depth, and that a travel cannot, because it does. The earlier essay closed by asking whether the circle that is free of streaks is also free of shear — whether a frame could be straightened about the bend’s centre without knowing any depth.

It is free of shear wherever it is sharp, and the frame needs no straightening there at all. It is the straightening that does the damage.

Every mark moves but two sets

The frame below is read from its top row to its bottom row over a thirtieth of a second, with the middle row read at the moment a global shutter would take the picture. Posts stand at several ranges and bearings, each marked at four heights — a little below the eyes, at eye height, and two and five metres above — and each mark carries an arrow six times the displacement the rolling readout gives it against the global frame.

Read row by row over 33 ms, a camera on the bend moves every still point but the bend's centre and the horizon rowThe camera car on the 50 m bend at 10 m/s, aimed at the bend's centre, its frame read from the top row to the bottom over 33.3 ms with the middle row read at the moment a global shutter would take. Posts at several ranges and bearings, each marked at four heights, and an arrow 6 times the displacement the rolling readout gives each mark against the global frame. The largest is 5.07 px, on the post 12 m out at 2 m above the eyes. The marks on the bend's centre are displaced by 1e-14 px at every height, because the centre turns with the camera. Every mark at eye height lies on the middle row and is displaced by nothing, whatever its range.correct from 17 cm, at 160 mm widereadout 33 ms · arrows ×6
Fig. 1 The camera car on the 50 m bend at 10 m/s, its frame read top to bottom over 33 ms. Arrows are six times each mark’s displacement from the global frame: up to 5.07 px, on a post 12 m out and 2 m above the eyes. Marks on the bend’s centre move by 1e-14 px at every height; every mark at eye height moves by nothing.

Most marks move. The largest arrow, on a post twelve metres out and two metres above the eyes, is 5.07 pixels. Two sets of marks do not. The marks on the bend’s centre, at every height, move by 10−1410^{-14} pixels: the centre turns with the camera, so wherever the camera is on the bend the centre is in the same place in its picture, and it does not matter which row reads it when. And every mark at eye height, whatever its range, moves by nothing: with the camera level, eye height is the middle row, and the middle row is read at the global shutter’s own moment.

The second set is a fact about when a row is read and the first is a fact about the bend. Together they are the whole of what a rolling frame on a bend gets right for free.

The readout’s length is a scale, not a shape

The slider on the frame changes how long the readout takes, from a hundred-and-twentieth of a second to a fifteenth, and the arrows change length and nothing else. The largest displacement is 1.27 pixels at the fastest readout, 2.53 at a sixtieth, 5.07 at a thirtieth and 10.16 at a fifteenth: in proportion to the readout time, because each mark’s row time is a fixed share of it. The two undistorted sets do not move at all. A faster sensor shrinks every arrow and changes none of their directions, and the places where there are no arrows are the same at every speed.

Every row is a different camera is the general statement this is a case of: a rolling frame is a stack of rows, each taken by the camera at its own moment. On a bend the cameras in the stack differ by a turn about the bend’s centre and nothing else, so the stack is a fan of pictures about one axis. A frame’s shear knows travel only over depth found, for a camera travelling straight past posts, that the lean a rolling frame gives a vertical contains the travel only as speed over depth; here the same lean contains it as speed times the difference between one over the depth and one over the bend’s radius, and so it vanishes at the radius instead of at infinity. The bend moves the place where travel stops showing from the horizon in to the centre of the curve.

One law for the streak and the shear

The earlier essay’s streak and this essay’s displacement are two samplings of one motion, and the figure below shows that they are.

Every mark's rolling displacement is its streak scaled by its row time over the exposure, to 3.1 per cent130 marks across the frame at ranges from 12 to 250 m, bearings from −18° to 20° and heights from 1.2 m below the eyes to 6 m above: the displacement a 33.3 ms readout gives each, against the streak a 33.3 ms global exposure gives it, times the mark's row time over the exposure. They lie on one line to 3.1 per cent. The readout and the exposure sample the same image motion — one across the rows, one across the shutter's opening — so the rolling frame is undistorted wherever the global one is sharp — the vertical line through the centre — and also along the horizon row, where every row time is nought.0246802468streak × the mark's row time ÷ the exposure (px)the rolling readout's displacement (px)130 marks, readout 33.3 msone law, two samplings
Fig. 2 130 marks across the frame, ranges 12 to 250 m, bearings −18° to 20°, heights −1.2 to 6 m: each mark’s rolling displacement against its global streak times its row time over the exposure. They lie on one line to 3.1 per cent.

A still mark’s image moves across the picture at some velocity, set by where it is and how the camera moves. An exposure open for TT seconds smears it along that velocity into a streak TT times as long. A rolling readout reads the mark’s row tt seconds from the middle row’s moment and records it displaced by tt times the same velocity. So each mark’s displacement is its streak scaled by its row time over the exposure, and across 130 marks spread through the frame the two agree to three per cent — the remainder being the image motion’s own change over the few milliseconds involved.

That is the answer to the earlier essay’s question, and it is a stronger answer than the question hoped for. The rolling frame is undistorted exactly where the global frame is sharp, because both are measuring the same image velocity and the sharp places are where that velocity is zero. The earlier essay found those places: the vertical line through the bend’s centre at every height, and the sharp circle at eye height. The rolling readout adds one set of its own, the horizon row, where every row time is zero whatever the velocity. A frame is an interval described an exposure as an integral of projections over time; a rolling frame is the same integral taken row by row, each row over its own short interval, and the law above is what that integral reduces to when the interval is short.

Up a vertical line, only the centre is kept

The sharp circle deserves a closer look, because at eye height it is undistorted for two reasons at once, and above eye height for neither.

Up a vertical line the centre stays put, a point of the sharp circle 20° off drifts 0.11 px by 8 m up, and a point 20 m ahead 5.5 pxMarks up a vertical line, from 1.4 m below the eyes to 8 m above, at three places: the bend's centre (0e+0, 0e+0, 0e+0, 0e+0, 0e+0, 0e+0, 3e-14, 0e+0, 0e+0, 0e+0 px), a point of the sharp circle 20° off the axis (0.003, 0.002, 0.000, 0.000, 0.002, 0.007, 0.015, 0.027, 0.061, 0.109 px), and a point 20 m straight ahead (0.96, 0.68, 0.34, 0.00, 0.68, 1.37, 2.05, 2.74, 4.11, 5.47 px). At eye height every mark is on the middle row and none moves. Above and below it the centre alone stays put: the sharp circle is sharp only at eye height, and so it is undistorted only there, where everything is.02402468height above the eyes (m)the rolling readout's displacement (px)the bend's centrethe sharp circle, 20° off20 m straight aheadreadout 33.3 msonly the centre's vertical is kept
Fig. 3 Marks up a vertical line from 1.4 m below the eyes to 8 m above, at the bend’s centre, at a point of the sharp circle 20° off the axis, and 20 m straight ahead. The centre stays put at every height; the circle’s point drifts to 0.11 px at 8 m up; the point ahead to 5.47 px. At eye height none moves.

At the bend’s centre the displacement is nothing at every height, below the eyes and eight metres above. Twenty metres straight ahead it grows in proportion to the height above or below the eyes — 0.68 pixels a metre above them, 5.47 at eight metres — because the mark’s image velocity is fixed and its row time grows with its height in the picture. And at a point of the sharp circle twenty degrees off the axis, it is nothing at eye height and grows slowly above it, to 0.11 pixels at eight metres.

The circle’s point grows because the circle is sharp only at eye height. A camera on a bend is sharp on a circle found that above the ground the rest of the circle blurs, and only the centre’s vertical stays sharp; a mark with image velocity has a displacement proportional to its row time, and above eye height the circle’s marks have both. So the circle is undistorted only at eye height, where every mark is undistorted anyway. The one place on the bend that is sharp and undistorted at every height is the vertical line through its centre.

A gyroscope makes the near world worse

The standard repair for a rolling frame is a gyroscope. It records how the camera turned during the readout, and each row is turned back by its own share — which a turning frame can be straightened found is exact for a camera that only turns. On a bend the camera also travels, and the gyroscope knows nothing of that.

Straight at the centre and 4 m above the eyes, the rolling frame is right at 50 m; a gyroscope's correction puts 0.73 px back into itThe displacement a rolling readout of 33.3 ms gives a mark 4 m above the eyes, straight toward the bend's centre, against its range: 14.60 px, 6.70 px, 2.74 px, 1.02 px, 0.23 px, 0.00 px, 0.10 px, 0.17 px, 0.18 px, 0.17 px, 0.14 px, 0.10 px, 0.08 px at 10, 14, 20, 28, 40, 50, 60, 80, 100, 140, 200, 300, 400 m. It vanishes at the centre, 50 m, and follows the streak's own law, f·v·|1/Z − 1/R| times the mark's row time. Straightened by a gyroscope — the camera's turn undone row by row, the travel left, as stabilisers do — it becomes 18.25 px, 9.31 px, 4.56 px, 2.33 px, 1.14 px, 0.73 px, 0.51 px, 0.29 px, 0.18 px, 0.09 px, 0.05 px, 0.02 px, 0.01 px: worse everywhere nearer than 100 m, where the two are equal — twice the bend's radius, since the uncorrected frame's error goes as |1/Z − 1/R| and the corrected one's as 1/Z — because on a bend the turn and the travel cancel at the centre and undoing the turn alone undoes the cancellation.1020501002004000.0010.010.1110range straight at the bend's centre (m, log)displacement 4 m above the eyes (px, log)as readgyroscope-correctedreadout 33.3 ms · 4 m above the eyesthe centre is read right
Fig. 4 A mark 4 m above the eyes, straight toward the bend’s centre, against its range. As read: 14.6 px at 10 m, 2.74 at 20, nothing at 50, 0.18 at 100, 0.08 at 400. Corrected by a gyroscope: 18.3, 4.56, 0.73, 0.18 and 0.01 — worse everywhere nearer than 100 m, twice the bend’s radius.

Along the axis, four metres above the eyes, the frame as read is displaced by 14.6 pixels at ten metres, 2.74 at twenty, nothing at the bend’s centre fifty metres out, and a fraction of a pixel beyond. The gyroscope’s correction turns every row back by the camera’s turn over its row time and leaves the travel: 18.3 pixels at ten metres, 4.56 at twenty, 0.73 at the centre, and less than the uncorrected frame only past a hundred metres.

The reason is the cancellation the earlier essay found. On a bend the turn and the travel move a mark’s image in opposite directions for everything nearer than the far side of the circle, and exactly cancel at the centre. The uncorrected frame’s error goes as ∣1/Z−1/R∣|1/Z - 1/R| — the streak’s own law — and the gyroscope, by removing the turn, leaves an error that goes as 1/Z1/Z. The two are equal where 1/Z=1/R−1/Z1/Z = 1/R - 1/Z, which is twice the radius. Nearer than that, the correction undoes more cancellation than it removes error. The centre, which the frame had right, it gets wrong by 0.73 pixels.

That turns the practical advice round for a vehicle on a curve. A frame taken on a bend by a camera aimed into it is, as read, already the frame straightened for the bend’s centre: the readout has done the correct thing for a point at that depth. A gyroscope-only stabiliser is the right tool for a camera that turns in place and the wrong one for a camera that turns because it is travelling round a curve, unless everything it looks at is more than twice the curve’s radius away.

The sharp circle, and the streak it came from

The two figures below are the earlier essay’s, for comparison: the sharp place in plan, and the streak along the axis.

The sharp range falls from 50.0 m on the axis to 35.5 m at 45°, on the circle through the camera and the centreAlong each bearing off the axis of a camera aimed at the centre of a 50 m bend, the range at which a still point's streak vanishes, found by searching along the bearing. The dots are what the search finds and the curve is 50 m times the cosine of the bearing, the circle whose diameter joins the camera to the centre. They agree to 0.33 per cent, and the difference is the exposure's own: in 33.3 ms the camera turns 0.38 degrees, so the exact locus is that circle tilted by half the turn. The sharp place is not a depth: at 45 degrees off the axis it is 14.5 m nearer than straight ahead.02040010203040bearing off the axis, degreesrange at which the streak vanishes, mR·cos(bearing)50 m bend, aimed at its centrewithin 0.33%
Fig. 5 The earlier finding: the range at which each bearing is sharp in one global exposure, on the circle through the camera and the bend’s centre, R·cos(bearing). At eye height the rolling frame is undistorted there too — and everywhere else at eye height as well.

The sharp circle is the set of eye-height points whose image velocity is zero. At eye height a rolling frame is undistorted along the circle and everywhere else too, because every eye-height point is read on the middle row, so for a rolling shutter the circle is not special at eye height and not undistorted above it. What survives from the earlier picture is its central fact: the bend’s centre is a fixed point of the camera’s motion, and a fixed point is right in every picture, however it is read.

Straight into the bend the still world is sharp at 50 m and under a pixel from 42 m to 63 mThe streak a still point draws over one exposure against its range straight ahead of a camera aimed at the centre of a 50 m bend at 10 m/s. Travelling alone would streak it by the focal length times the travel over the range, 61.7 px at 4 m falling as one over the range; turning alone would streak everything by 4.93 px. Doing both, the two subtract: 56.7 px at 4 m, nothing at 50 m, and back toward 4.93 px far away — 4.32 px at 400 m. The streak is f·T·v·|1/Z − 1/R| exactly, so it is under a pixel from 41.6 to 62.7 m, and it points one way nearer than the centre and the other way beyond. The slider changes the bend's radius at the same speed, and the sharp place moves with it.41025501002500.111050range straight ahead, mstreak over one exposure, pxturning as it travelstravelling onlyturning onlythe centre, 50 maimed at the bend's centre, 33.3 msunder 1 px: 42–63 m
Fig. 6 The earlier streak along the axis: f·T·v·|1/Z − 1/R|, zero at the centre. The rolling displacement along the same axis follows the same curve, scaled by each mark’s row time over the exposure.

The streak’s curve is the rolling displacement’s curve, scaled. That is the practical form of the law: anything a photographer knows about where a camera on a bend is sharp is something they now know about where its rolling frame is undistorted, and by how much elsewhere — the streak, times the row time, over the exposure. Turning and travelling blur different worlds separated the two motions for a camera that follows a subject; on a bend the two are one motion, a rotation about the bend’s centre, and every reading of the picture — blurred, sheared, or corrected — is a reading of how far each point is from that centre’s depth.

What a rigid turn about a far point is

The whole of this follows from one description. A camera car rounding a bend at steady speed, aimed at a fixed angle to the road, is a rigid body turning about the bend’s centre. Every picture it takes is the same picture of a world turning the other way about that point, and the only points that do not move in its pictures are the points on the axis of the turn: the vertical line through the centre. The rows count hands, not cameras is a reminder from a different field that rows record the order in which a picture was made; here they record it in time, and the axis of the turn is the one place where time does not show.

A rolling frame is therefore a picture in which each row was taken by the same camera at a different angle of the turn. A row-by-row correction that knew the turn and its axis would carry every row to the middle row’s moment exactly for every point on any surface — but it would need the depth of each point, since a turn about a far axis moves near points by their distance from it. A correction that knows only the turn treats the axis as through the camera, and so treats every point as infinitely far away; on a bend, that is right beyond twice the radius and wrong nearer.

What a camera on a curve should do with it

Three practical rules follow, for anyone mounting a rolling-shutter camera on a vehicle that corners.

Aim into the bend, and the frame is right where it matters most. A camera aimed at the curve’s centre has its one undistorted vertical in the middle of the frame, and everything near that depth is displaced by little: at forty metres, four metres above the eyes, 0.23 pixels. A camera aimed along the road has no such place in front of it. A dolly zoom is a step and a zoom found the same kind of fixed depth for a camera that steps and zooms at once — two motions that cancel at one distance — and the bend’s centre is that depth for a camera that steps and turns.

Correct with the travel, or not at all. A gyroscope’s row-by-row turn is the right correction for a camera turning in place and half of the right correction for a camera on a curve. Applied alone it adds error inside twice the radius. A correction that also knows the speed and a depth for each point can remove both motions; one that knows only the turn should be withheld for anything nearer than twice the radius of the curve the vehicle is on — which, on a road, is most of what a camera sees.

Keep the horizon near the middle row. Every mark at eye height is undisplaced because it is read at the middle row’s moment. A camera pitched down to see the road puts the horizon high in the frame, reads it early, and gives up the one set of rows that was free for every depth. Levelling the camera, or timing the readout from the horizon’s row, keeps it.

What was assumed

The camera is level and aimed into the bend. A camera aimed along the road, as a camera on a bend is sharp on a circle found, has no sharp range in front of it, and so no undistorted range either; the centre is behind its field of view. A pitched camera puts the horizon off the middle row, and the undistorted row moves with it.

The bend is steady. A car entering or leaving a curve changes its rate of turn during the readout, and the centre of the turn moves; the fixed point is then only instantaneous, and the rolling frame is right about it only to first order.

The readout runs top to bottom with the middle row at the global moment. A readout timed from the first row shifts every row time by half the readout, and adds to every displacement the image velocity times that shift: the horizon row is then displaced too, and the only undistorted set left is the centre’s vertical.

Still open: whether a rolling frame on a bend gives back the bend’s radius

The law above says the rolling displacement along a column is the image velocity times the row time, and the image velocity is f v ∣1/Z−1/R∣f\,v\,|1/Z - 1/R| along the axis. A column crossing the bend’s centre — a lamp post standing at the centre, or any vertical at a known range — therefore leans in the rolling frame by an amount proportional to 1/Z−1/R1/Z - 1/R, and a vertical at the centre does not lean at all.

The measurement that settles what that is worth takes a rolling frame of a road with verticals at several ranges ahead, reads each vertical’s lean to a pixel, and asks whether the range at which the lean vanishes — found by fitting the leans against one over the range — returns the bend’s radius, and how precisely, against the readout time and the number of verticals. If a single rolling frame gives a curve’s radius to a few per cent, a camera with a rolling shutter carries a curvature gauge in every picture it takes on a bend, and the distortion that gyroscopes are fitted to remove is a measurement of the road.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

camera trackExposureMotion blurMoving viewpointParallaxPrincipal pointSensor