I have a bunch of AVI clips to enhance which are very low res (320 x 240) and low frame rate (7FPS).
I’ve been trying to increase frame rate to 25FPS using frame interpolation, but for some reason Topaz outputs files which still play at the original frame rate. There’s no error reported with the export, it just looks exactly as stuttery as the original when I play it back. All other enhancements still work as normal.
I tried transcoding the AVIs to a different wrapper (MP4, MOV) and codec (H264, Prores) and I still get the same result. I even tried switching off frame interpolation and then used the non-interpolated file as a new input file. Still no difference.
The only success I’ve had is when I tell Topaz to interpolate to 50 FPS. Then I get a file with a strange frame rate (23.454687 FPS according to VLC).
Any ideas what is going on and how to work around this?
Format : AVI
Format/Info : Audio Video Interleave
Format settings : BitmapInfoHeader / WaveFormatEx
File size : 6.78 MiB
Duration : 1 min 44 s
Overall bit rate : 542 kb/s
Frame rate : 16.000 FPS NB/ It definitely is not 16 fps. When I step through frame-by-frame on VLC, it’s more like 7-8 fps
Conformance errors : 3
AVI : Yes
idx1 : Yes
General compliance : Element size is more than maximal permitted size (actual 110848, expected 110840, offset 0x6ABBEC)
·j : Yes / Yes
General compliance : File size is less than expected size (actual 7105772 99.999%, expected 7105856, offset 0x6C6CEC) / Element size is more than maximal permitted size (actual 84, expected 0, offset 0x6C6CEC)
Video
ID : 1
Format : JPEG
Codec ID : MJPG
Duration : 1 min 44 s
Bit rate : 496 kb/s
Width : 320 pixels
Height : 240 pixels
Display aspect ratio : 4:3
Frame rate : 16.000 FPS
Color space : YUV
Chroma subsampling : 4:2:2
Bit depth : 8 bits
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.404
Stream size : 6.20 MiB (91%)
Audio
ID : 0
Format : ADPCM
Codec ID : 11
Codec ID/Hint : Intel
Duration : 656 ms
Bit rate mode : Constant
Bit rate : 5 376 kb/s
Channel(s) : 1 channel
Sampling rate : 8 000 Hz
Bit depth : 4 bits
Stream size : 431 KiB (6%)
Interleave, duration : 62 ms (1.00 video frame)
And here is the metadata for the enhanced output file, which I asked Topaz to interpolate to 25 FPS:
Format : MPEG-4
Format profile : QuickTime
Codec ID : qt 0000.02 (qt )
File size : 164 MiB
Duration : 1 min 45 s
Overall bit rate mode : Variable
Overall bit rate : 13.0 Mb/s
Frame rate : 11.702 FPS
major_brand : qt
minor_version : 512
compatible_brands : qt
videoai : Framerate changed to 25 using chr-2 replacing duplicate frames. Enhanced using iris-3; mode: manual; revert compression at 50; recover details at 50; sharpen at 0; reduce noise at 0; dehalo at 50; anti-alias/deblur at -100; focus fix Off; add noise at 2; and recover original detail at 75. Changed resolution to 1920x1080
encoder : Lavf62.4.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 3 frames
Format settings, GOP : M=1, N=30
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1 min 44 s
Source duration : 1 min 44 s
Bit rate mode : Variable
Bit rate : 13.1 Mb/s
Maximum bit rate : 16.0 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 11.702 FPS
Minimum frame rate : 8.333 FPS
Maximum frame rate : 12.500 FPS
Original frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.540
Stream size : 164 MiB (100%)
Source stream size : 164 MiB (100%)
Color range : Full
Matrix coefficients : BT.470 System B/G
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 1 min 45 s
Source duration : 1 min 45 s
Source_Duration_LastFrame : -52 ms
Bit rate mode : Variable
Bit rate : 38.5 kb/s
Maximum bit rate : 96.0 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 8 000 Hz
Frame rate : 7.812 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 497 KiB (0%)
Source stream size : 498 KiB (0%)
Default : Yes
Alternate group : 1
Thank you. I can share the logs but unfortunately I cannot share the video files because of the confidential nature of the project. Will that be enough for you to help?
My suspicion is that too many duplicate frames are being detected for the model to be able to compensate for. Topaz staff might be able to discern this from the logs.
I would test this by running the model without duplicate removal, and check that the exported file has the output framerate you set, even though it won’t be visually smooth. Only do the frame interpolation, and use Chronos Fast to cut down processing time.
Perhaps also test by reducing the duplicate frame sensitivity to a minimum.
I interpolated a test video from 8fps to 25fps and it worked fine (but it was higher res, without duplicate frames, and not a mjpg avi).
Thanks for the suggestion. Unfortunately, neither switching off duplicate frame removal nor lowering duplicate frame sensitivity to a minimum make any difference - either visually or in what Mediainfo reports.
What’s noticeable is that Topaz doesn’t even attempt to interpolate the frames - the processing time is way too quick for that to be happening.
I don’t think it’s due to a systemic problem. I’ve tried this on 2 different Topaz installations on 2 different systems.
And I tried converting a 25FPS file to 12FPS using Shutter Encoder and then ran that through Topaz frame interpolation back up to 25FPS and it worked just fine.
Could it be something like the original AVI files don’t have a constant framerate and they confuse Topaz? Is there any way I could test that theory by, say, forcing the original AVIs to have a constant framerate?
I ran each original AVI through Shutter Encoder and used the “Conform by: Speed” setting in Advanced Features to transcode to a new file at a constant framerate. Then I processed the new file in Topaz and it has indeed correctly interpolated the frames. A bit of a faff and I worry about losing something in the transcoding process, but it is at least a workaround for now.
So is it a known bug in Topaz that it doesn’t handle variable framerates correctly?
Do the files also contain duplicate frames?
→ That would complicate things considerably.
Topaz can only handle the fact that every second image is a duplicate.
→ It fails if there are random duplicate frames.
(you must try to use decimate in ffmpeg)
Good frame interpolation can only be achieved if the multiplication is 2, 4, 8, or, with Aion, 16.
→ Anything else causes judder—uneven motion intervals.
So if a slight acceleration or deceleration is possible, or perhaps even useful, use the shutter encoder (lossless and extremely fast, as only the “time stamps” are rewritten) to bring it to an integer value of 50 or 60.
Example: good should be:
with Topaz x 8 (for highest quality Aion) from 7 to 56 fps (or 28 fps)
→ then use the shutter encoder to adjust to 50 or 60 (or 25 / 30) as desired