🇯🇵 このサイトは日本語でもご覧いただけます — 日本語ページを見る →
S
Sidekick Lab
by Ichiro Murata

Why Do Star Trails Show Seams Even Though the Frames Were Shot Continuously?

Why do Lighten-stacked star trails show seams and dashes even though the frames were shot continuously? I re-measured 3,522 Nikon D3 NEF files from 17 years ago. The gaps between frames alone could not explain it; the star's measured brightness was already fluctuating before compositing, and Lighten selected and amplified it. Cause and period remain unknown.

Ichiro Murata · Photographer / Sidekick Developer

Re-examined with 3,522 frames of Nikon D3 data from 17 years ago

When I photograph star trails, I have always joined continuously shot frames with Lighten compositing.

Because the frames are shot continuously, there is almost no gap between one frame and the next.

And yet, when I view the composited trail at 100%, the lines look broken here and there.

At the time, I put this down to the tiny gap between shutter closings.

I still had 3,522 NEF files from 17 years ago, so I decided to test that assumption against real data.

Let me state the conclusion up front.

In this D3 data, the seams and the uneven brightness could not be explained by the tiny gap between shutter closings alone. In each frame, before any compositing, the measured brightness of the star was already fluctuating, and Lighten compositing selected and amplified that fluctuation. What physically causes the fluctuation, and what sets the period of the light and dark patches, is still unknown.

Let me go through it in order.

The "breaks" I saw at 100% seventeen years ago

Back when I used the Nikon D3, I would mount an ultra-wide lens of around 15 mm, shoot continuously at F2.8 and 8 seconds, and Lighten-composite the frames into star trails.

The compositing method was the simplest possible: stack the frames and blend them with Lighten.

At 100%, the seams were plainly visible.

The impression was not "there is a slightly darker valley here".

The line looked as if it was interrupted there.

In my own words, a line that looked digitized.

Long-exposure noise reduction was switched off. I saw the breaks anyway.

Star trails over the ridgeline at Tsubakuro-dake on 11 October 2009: 300 of the continuously shot frames, extracted from the NEF files with default development settings and stacked with Lighten (per-pixel maximum) only. Countless star trails arc above the Yari-ga-take ridge. Reduced-size view.

Figure 1: Tsubakuro-dake, 11 October 2009. Of the 3,522 frames used in this investigation, 300 were extracted from the NEF files with default development settings and stacked with Lighten (each pixel keeps the brighter value) — nothing else (reduced-size view). No aircraft-trail removal, smoothing, sharpening or noise processing of any kind. This is not a reproduction of the finished work from that time; it shows "what you get if you extract the RAW files and simply Lighten-stack them".

A 100% crop of Figure 1. Many star trails look not like smooth lines but like rows of short dashes, broken at intervals. No processing other than cropping.

Figure 2: Part of Figure 1 at 100% (no processing other than cropping). The star trails look like rows of short line segments. The "line that looked interrupted" and "line that looked digitized" in the text refer to this appearance.

My explanation at the time, and the fix I used later

At the time, my thinking went like this.

Compared with the length of line a star draws during one exposure, if the distance the star moves before the next frame starts is kept short enough, the seams should stop being noticeable.

In other words: the star moves during the brief moment the shutter is closed, and that is why the line breaks.

It is a very natural explanation. I suspect many readers think the same way.

Later, I began using a somewhat laborious workaround for the seams.

Take adjacent pairs of frames, offset by one frame: frames 1 and 2, frames 2 and 3, and so on, for every frame. Blend each pair with Screen and merge it, then apply −1.00 EV with Photoshop's Exposure adjustment. Finally, Lighten-composite all the resulting pair images.

I did this on 8-bit Adobe RGB TIFFs after RAW development.

In my own practice, this method worked. It was not derived from theory; it was a method I worked out, and kept using, to solve a problem I was actually having.

When I started using it, I cannot pin down myself. All I know is that it was some time after I first saw the seams on the D3.

In my article about the "8 seconds", I wrote that I wanted to investigate this seam question separately some day.

This is that investigation.

3,522 frames had survived

The first step was to find the original material.

Nikon D3 NEF files from the night of 11 October 2009: 3,522 of them. One continuous shooting run, complete, with no frames missing.

And here the first discrepancy between memory and record appeared.

I remembered shooting at ISO 1600. When I re-examined the NEF files, it was actually ISO 3200.

Things like this happen after 17 years. I do not know why my memory was wrong. All I will say here is that I trust the record.

The conditions used in this investigation, as read from the actual data:

Item Value
Date 11 October 2009
Camera / lens Nikon D3, 14-24mm F2.8 at 14 mm
Exposure 8.0 s
Aperture F2.8
ISO 3200
Drive Continuous shooting
RAW 14-bit lossless NEF
Long-exposure noise reduction OFF
Frames 3,522 (a single continuous run, no missing frames)
Interval between frames About 8.10 s

Table 1: Conditions of the real data used in this investigation (read from the NEF metadata and timestamps)

The exposure is 8.0 seconds and the interval between frames is about 8.10 seconds. The difference, about 0.1 seconds, is the estimate of how long the shutter was closed. It is read from file timestamps, so it says nothing about what happened inside the camera.

Can a "0.1-second gap" explain the seams?

If my explanation from back then were right, the star's movement during that 0.1 seconds should leave a gap in the trail.

I measured it on the real data.

During an 8-second exposure, a star moves about 1.13 pixels across the frame.

And in about 0.1 seconds?

About 0.012 pixels.

Meanwhile, the width of a star image in this data (full width at half maximum) was about 4.52 pixels.

The distance the star moves during the gap is tiny compared with the width of the star image. The star images of adjacent frames overlap almost completely.

At least the large seams and brightness variations I had been seeing could not reasonably be explained by "the star moved during the 0.1 seconds and left a gap in the line".

And yet the uneven brightness was real.

Taking a 300-frame segment out of the 3,522 and measuring the brightness along the composited trails, the variation between light and dark was unmistakable. In terms of the index that expresses the difference between the brightest and darkest parts (Michelson contrast), it was about 0.24 for short trails and grew with trail length, reaching about 0.54.

The "breaks" I had been seeing at 100% had a real counterpart in the data.

Line chart of the number of frames Lighten-composited (5, 10, 20, 50, 100 and 300) against the brightness variation along the trail (median Michelson contrast). The variation rises from about 0.24 at 5 frames to about 0.54 at 300 frames. Measured: Nikon D3, 11 October 2009, 300-frame segment.

Figure 3: Number of frames Lighten-composited versus the brightness variation along the trail (Michelson contrast, median over stars). Measured on the 300-frame segment of this data by compositing 5 to 300 frames in stages. The longer the trail, the larger the measured variation, from about 0.24 to about 0.54. These are measured values, not a model's prediction. One camera, one night, one set of conditions.

One further note: even in an idealized model, a dip in brightness can arise at the boundary between adjacent frames. That in itself is not wrong. But the large variation observed in this D3 data could not be explained by that alone.

The explanation I had believed for 17 years was, at least on this data, not supported.

The variation was already there before compositing

So where did the variation come from?

Here I changed the direction of the investigation. Instead of the composited result, I looked at the individual frames before compositing.

In the 300-frame segment, I measured the brightness of 171 stars, frame by frame.

It turned out that the measured brightness of the stars was already fluctuating from frame to frame before any compositing. And the fluctuation was larger than could be explained by mere measurement scatter.

I write "measured brightness" deliberately. What is being measured is the brightness of the star image in the photograph. The fact that it fluctuated is not yet grounds to say that the star itself was varying in brightness.

Either way, the raw material was already not constant before the compositing stage.

Schematic. Top: a bar chart in which the measured brightness of a star fluctuates from frame 1 to frame 8 (sequence in time). Bottom: because the star moves about 1.13 pixels per frame, that fluctuation is laid out along the trail as light and dark patches at successive positions (sequence in position). The cause of the fluctuation is unknown.

Figure 4: A sequence in time becomes a sequence in position (schematic). The bar heights in the upper part are illustrative values, not measurements. Because the star moves about 1.13 pixels per frame, the frame-to-frame fluctuation in brightness can be laid out along the trail as light and dark patches at successive positions. This figure explains the mechanism only; it does not depict the cause of the fluctuation (what changes the brightness). That is unknown.

Lighten compositing "selects and amplifies" the fluctuation

What does Lighten compositing — Photoshop's Lighten blend mode — actually do?

For each pixel of the stacked images, it keeps the brightest value. That is all.

It is neither addition nor averaging. It is a selection.

How that selection differs from a long exposure or an average is explained, with the focus on a single pixel, in a separate article: A 30-Minute Exposure vs. 30 Minutes of Lighten Compositing: What Actually Differs?.

When the star images of adjacent frames overlap at almost the same place, what survives there is the value from the brighter frame; the darker one is discarded. If the pre-compositing brightness fluctuates from frame to frame, Lighten picks out the brighter side of that fluctuation and turns it into the line.

Schematic. Top: the star images of adjacent frames 1 and 2. The movement per frame is about 1.13 pixels and the star image is about 4.52 pixels wide, so the two images almost completely overlap. Bottom: the same row of pixels, where Lighten keeps, for each pixel, only the brighter of the two frames' values.

Figure 5: The star images of two adjacent frames, and how Lighten works (schematic). The star-image width (about 4.52 pixels) and the movement per frame (about 1.13 pixels) are values from this data, but the shape of the star image is simplified for explanation and is not a measured image. As the lower part shows, Lighten keeps only the brighter value at each pixel. It is neither addition nor averaging.

I checked this on the real data.

For the same stars, I compared the brightness variation along the trail when the frames were combined by "averaging" and when they were combined with "Lighten". Averaging smooths out the frame-to-frame fluctuation; Lighten keeps only the brighter side. The same material should give different lines.

With Lighten, the variation index was about 0.27 larger. Because of how it is measured, this difference is, if anything, on the conservative side.

Looking star by star, the stars with larger fluctuation before compositing also had larger variation along the trail after compositing. Over the 171 stars, the ranking by fluctuation size and the ranking by trail variation corresponded well (rank correlation about +0.56).

Lighten compositing was the main stage that selected the brightness fluctuation already present before compositing, amplified it, and strengthened the light and dark patches along the trail.

Lighten did not, however, create the variation. It strengthened it. Without fluctuation in the material, there would be nothing to select. Nor can I say it was the only cause: I have not confirmed that no other stage contributes at all.

A fluctuation in time becomes patches along the line

Putting all this together, the appearance of the seams can be understood like this.

The star moves about 1.13 pixels across the frame with each frame.

The frame-to-frame fluctuation in brightness is a fluctuation in time order. The star's movement maps that fluctuation onto positions in the frame: frame 1's brightness at this position, frame 2's brightness about a pixel further on, frame 3's further still.

A fluctuation along the time axis is laid out as light and dark patches along the line.

So even with almost no gap between continuously shot frames, uneven brightness can appear along the trail.

I write "can appear" because that is as far as this investigation was able to confirm.

What is still unknown

Let me be frank.

What this investigation established is this much: the seams were not due to the gaps alone; there was fluctuation before compositing; Lighten compositing strengthened it; and a fluctuation in time can become patches along the trail.

Two things remain unknown.

First: what causes the fluctuation in the measured brightness before compositing has not yet been pinned down to a single source.

Second: the patches had a period of about 15 pixels, and how that period is set is also unresolved.

It would be easy to write "it is probably such-and-such", but I have decided not to write anything that this data did not confirm.

One more limitation. These results come from one camera, one night, one set of conditions (D3, 14 mm, 8 s, F2.8, ISO 3200), and a 300-frame segment of the 3,522 frames. Whether the same thing happens with other cameras or under other conditions, I have not investigated here.

What was my fix actually doing?

So what about the method I used later — blending adjacent pairs with Screen, applying −1 EV, then Lighten-compositing?

What was it doing?

Looking at it again with a model, it was an operation in the direction of adding back the side that had been discarded at the frame boundaries — a reasonable way of weakening the seams.

But it is not a mathematically exact correction. Nor do the model's numbers carry over to the 8-bit TIFFs I was actually processing. And above all, this investigation did not measure the effect of that method. What it measured was what was happening at the stage of simple Lighten compositing, before any fix.

What I find interesting is that, although my understanding of the cause was wrong, in practice I had arrived at a way of improving the appearance.

What I learned this time is not "the fix was right", but "the seams I was trying to fix were not what I thought they were".

Today I do Lighten compositing with SideKick Star, a tool I make myself. It does not include the Screen / −1 EV process.

What it does include is a process applied after Lighten compositing, to the sky region only, that spatially smooths the areas that look dashed — bridging them over, so to speak. This does not restore lost information about time. It tidies up, as a matter of appearance, the residue of a fluctuation in time that has become patches along the trail. I use it knowing that.

Why the old Screen / −1 EV method gave way to the current one, I cannot now determine; there are no development records from that time. What I do not know, I leave unknown here as well.

The record over the memory

Seventeen years ago, I believed the seams were caused by the gap between shutter closings.

I also remembered the ISO as 1600.

When I checked both against the surviving records, both were wrong.

The seams could not be explained by the gaps alone. The material was fluctuating before compositing, and Lighten compositing selected and strengthened that fluctuation. Because the star moves, a fluctuation in time can appear as patches along the line.

And the cause of the fluctuation, and of its period, is still unknown.

I cannot say I have found the cause.

But I was able to test an explanation I had believed for 17 years against the real data from that time, and to confirm where it was wrong. That was possible only because the records had survived.

The data you shoot is worth keeping, I thought.

Where something is unknown, do not manufacture an answer.

About the seams in Lighten-composited star trails, this is as much as I can say today.