Frame Interpolation Apollo makes some duplicate frames

Topaz Video AI v3.5.4
Input file is Prores 422 LT 23.976fps .mov

Frame Interpolation with Apollo model (original FPS and SLOW MOTION>=2 ) produces uneven speed in output. For example an object that is supposed to move along at constant speed (or at least with uniformly accelerated motion) is seen slowing down in one frame then speeding up in the following frame. This is barely noticeable when the output file is played normally, but when stepping frame by frame it is evident that in some frames the object is very close to the preceding frame while in the following frame it moves away a greater distance. The issue is more and more evident as the SLOW MOTION effect is increased. Above 8x some consecutive frames are so close that they are literally the same bit for bit!

I could avoid the issue using Chronos, but this model has another issue in that it produces an initial sequence of as many equal frames as the slow motion parameter.

1 Like

Replace Duplicate Frames on or off?

Issue is the same irrespective of Replace Duplicate Frames setting.
I believe that setting is for removing dup frames from input, not from output. Furthermore, if the dup frames seen in output were to be removed the output duration would not match the input duration.

Replace Duplicate Frames on Apollo makes the motion choppy. An example: if there is one thing moving in a scene, it will blink in and out. Turning it off will preserve the moving object in the scene more consistently.
If there are actual duplicate frames in the source, they will regress the motion very noticeably and must be removed before running TVAI on the video. Replace Duplicate Frames does not do what it says it does.

Visual inspection confirms there are no dupes in the input file (there are only 66 frames to check).

Also, no dupes according to the following command:
ffmpeg -i 01.mov -vf mpdecimate -loglevel debug -f null -

Topaz Video AI v4.0.4

Same issue.
Input file had 66 frames. Using Apollo 10x I got an output “TV404apollo10x.mov” with 632 frames.
I expected 10x66-9=651 frames, because the last 9 frames would require a 67th reference frame.
According to the following command there are 196 duplicate identical frames in the output file:
ffmpeg -i TV404apollo10x.mov -vf “mpdecimate=hi=1:lo=1:frac=1:max=0” -loglevel debug -f null -

Furthermore, the first 10 frames are identical. This did not happen with v.3.5.4.

I think Apollo is maxed at x8 as it processes 8 frame bulks.
Anything beyond x8 , Chronos should be used.

As a golden rule (after digging in through all the documentation):

For use case 1 (FPS change), Select “None” (as you not slow motioning anything) and use Chronos fast AI for double the fps (most cases, that what people do), e.g. 30fps → 60fps, 25fps → 50fps.
Apollo fast AI for non-double conversions. For example, 24fps → 29.97fps or 24fps → 60fps.

For use case 2 (Slow Motion), select the “x” you want to slow motion it by and use Apollo Fast AI if you want to slow motion by x2 or x4 and Apollo AI for x8.
Chronos AI for beyond x8 or below x2 or any none whole multiplier, such as x1.6, x2.7, x4.5 ,etc. or if you slow motion by uneven numbers such as x3, x5, x6 or x7.
Chronos fast AI is recommended for use on video which has a lot of scene change or nonlinear movements in your scene in which you want to slow motion (regardless to what “x” slow motion you use).

As for Apollo SR: I don’t know yet

3 Likes

I’m seeing those duplicate frames at the start too now. Just went back and did my test clip and the first four frames are duplicates. (Doing slomo 2.5X with Apollo.)

if it is not noticeable during play back, then why do we care?
if a tree falls in the middle of the forest and there’s no one around, does it make noise? same concept, no?

I’m disappointed. It was better before.

but seriously. if during playback you can’t see it, why does it bother us so much? apart from in our mind / Psychologically

Yes, Apollo works OK with 8x, no dupes and no inconsistences in frame separation, except that the first 8 frames are identical.
Still, I expected 8x66-7=521 frames, but I got 506.

Chronos 10x got me 641 (expected 10x66-9=651) frames and no dupes nor micro-jitter.

It could move the sound out of synchronization. That’s my only worry and has been an issue in the past.
But it also is a telltale sign of carelessness on the programming side of things. What else has been carelessly changed?

2 Likes

Well, because these inconsistencies seem to suggest that something is wrong, and in some use cases it could be worse.

when I slow motion with sound (x2), i get the sound playing only at the 1st half of the video and the other half is quiet as the sound finished playing while the video still has duplicate time from original to run.
in any case, it is anyway out of Sync as the scene doesn’t match the sound as it was slowed down while the sound stays untouched at original speed that doesn’t match the video motion (slow motion).
that is why I stopped using sound on Slow Motion. unless I am doing something wrong with sound settings in TVAI.

Oh I output to PNG and encode it to video at the higher FPS. So 24 fps slomo by 2.5X equals 60 FPS. Mostly I do that because there were big differences in the results between setting the output to 60 FPS and using the slow motion factor. Those differences were not there last time I checked Apollo, but I had already wrote my script the other way.

1 Like

So you actually don’t do Slow motion for the sake of slow motion, you are using slow motion as part of your workflow for fps conversion, I see. in your case I guess out of sync is a risk.

@colemarc can you check if you have the issue in v4.05?
based on the Change Log it seems they addressed the issue to a certain extent.

* Improvements to frame de-duplication in frame interpolation.

I did a quick check and saw no difference.

1 Like