Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
9th December 2017, 02:42 | #42 | Link | |
Registered User
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
|
Quote:
But where did "Filmscan 3" come from ? Not that I'm complaining, but I was under the impression that "Filmscan 2" was the max quality level. I haven't done any quality metric tests (yet), but with the same source clip the bitrate of the 'Filmscan 3" encode was about 5% higher than that of the 'Filmscan 2" encode. Edit: With this one test clip (HD-AVC 1080/30p mp4) as source: Code:
Bitrate (Mb/s) SSIM score (%) Filmscan 3 346 98.28 Filmscan 2 327 98.09 Filmscan 1 239 96.43
__________________
Nostalgia's not what it used to be Last edited by WorBry; 9th December 2017 at 05:52. |
|
10th December 2017, 00:56 | #45 | Link |
Registered User
Join Date: Nov 2004
Location: Poland
Posts: 2,843
|
FilmsScan3 is a "special" mode made for Disney for very clean sources. For typical or noisy source it may rise bitrate a lot for not much quality gain.
Cineform was made with idea of high-end RAW (or film scan) sources, not already pre-compressed ones. When you test it with h264 etc (or even already compressed ProRes) source it will tend to use relatively low bitrates even for FS2 mode. If you take some RAW source (RED, Arri) etc then it's a different story. It will nicely preserve quality over whole source. Here is an example: http://s32.postimg.org/u54dzr079/test.png Great to see native Cinefrom in Vdub! Last edited by kolak; 10th December 2017 at 01:06. |
10th December 2017, 03:45 | #46 | Link |
Registered User
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
|
Interesting. I knew 'Film Scan' per se was developed to accurately reproduce the grain characteristics in high grade film scans but had seen no mention of 'Film Scan 3' before:
https://cineform.zendesk.com/hc/en-u...ality-Settings
__________________
Nostalgia's not what it used to be |
12th December 2017, 18:50 | #50 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
There seem to be decoder differences as well , between ffmpeg and VFW (regardless if file was encoded with 9.2.1 or native vdfm sdk implementation)
Or how do you test "proper" 10-bit VFW decoding ? Maybe some testing methodology errors ? I'm testing in vapoursynth, with avisource and pixel_type="v210" . The differences don't look like a simple 10bit vs 8bit issue . And the difference pattern is quite different when testing v9.2.1 vs SDK Code:
import vapoursynth as vs core = vs.get_core() c0 = core.ffms2.Source(source=r'F:\_Video Tests\QT Prores\cineform_filmscan2_native.avi') a0 = core.avisource.AVISource(r'F:\_Video Tests\QT Prores\cineform_filmscan2_native.avi', pixel_type="v210") #c0 = core.ffms2.Source(source=r'F:\_Video Tests\QT Prores\cineform_filmscan2_v9.2.1.avi') #a0 = core.avisource.AVISource(r'F:\_Video Tests\QT Prores\cineform_filmscan2_v9.2.1.avi', pixel_type="v210") d = core.std.MakeDiff(c0,a0) da = core.std.Levels(d, min_in=511, max_in=513, gamma=1, min_out=0, max_out=1023, planes=[0,1,2]) da.set_output() |
12th December 2017, 19:27 | #52 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
The original file is prores , then I used vdfm to encode either with native cfhd, or gopro v9.2.1 implementation
http://www.mediafire.com/file/fzxi5p...v210.part1.rar http://www.mediafire.com/file/pqrydi...v210.part2.rar I'm still investigating, but it looks like ffms2 issue (I'll try a few others later) ; but it also looks like recent ffmpeg.exe (zeranoe) decoding it incorrectly too when outputing v210 and checking the uncompressed stream. Looks almost like interlace issue EDIT: 1) It seems like only the 9.2.1 streams are affected . The native implmentation encoded streams are decoded correctly by everything. ffmpeg, ffms2 derivatives all decode it incorrectly. Yet vdfm decodes it correctly. I had video format "automatic" for the 9.2.1 settings. I'll try with progressive Yes that's it for that "interlace" issue. You have to explicity set progressive encoding settings for 9.2.1, otherwise ffmpeg, ffms2 exhibit the issue 2) Does the SDK expose progressive / interlaced settings ? I didn't see the option in the vdfm native implementation 3) But there are still differences between decoders. e.g when I test a native stream such as in post #50 . The ffms2 result is consistent with ffmpeg result (decoding to v210) as expected , but the VFW result is still different Last edited by poisondeathray; 12th December 2017 at 20:25. |
12th December 2017, 20:24 | #53 | Link |
Registered User
Join Date: Mar 2015
Posts: 775
|
This is what I see: https://s8.postimg.org/hpxoe38id/alexa.png
(Levels min_in=512-20, max_in=512+20) The lower edge is maybe this problem: http://trac.ffmpeg.org/ticket/6675 Other parts look good to me. Btw in VDFM there are 3 ways to decode CineForm, this way I saw some defects with different behavior across implementations. 1) Native: through caching input driver and default options 2) FFMpeg: through caching input driver and uncheck "Use native decoder" in open dialog options 3) VFW: through AVI driver |
12th December 2017, 20:39 | #54 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
Yes, some differences similar to that when testing VFW vs. FFMS2 in vapoursynth . I would expect on the decode side things would be identical for the same input stream . Not just the lower edge issue, but decoder should output bit identical, so the other parts don't look good to me in terms of testing (they look fine to naked eye when not testing differences)
I know it's work in progress, but it's supposed to be standardized STMPE VC5 , so results so be more consistent IMO . I don't know a thing about writing code. I can't even spel properly . I can only help by making observations and test I'll look in the QT/MOV and Adobe implementation next . Do you know if it's based on the same SDK or did they do some tweaks ? Is there a "reference" decoder ? Similar to JVT JM bitstream reference decoder for AVC streams ? I would assume it's the go pro implementation Last edited by poisondeathray; 12th December 2017 at 20:51. |
12th December 2017, 21:11 | #55 | Link | |
Registered User
Join Date: Mar 2015
Posts: 775
|
But this is hacked ffmpeg decoder that makes this test look bad.
I just compared: vfw decode of vfw.avi, vfw decode of native.avi, native decode of native.avi, native decode of vfw.avi: all appear bit-identical. I am lazy to run it through md5, just seeing perfectly gray difference. Quote:
Bitrate may be slightly different due to embedded metadata (things like encoding date etc). Previously the sdk included compiled dlls, I doubt any at Adobe had source code. But I have no idea. |
|
12th December 2017, 21:22 | #56 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
Yes, the problem is the ffmpeg decoder (or derivatives , ffms2 etc...)
The not bit for bit identical results are from different decoder output. The ENcode side is ok The ffmpeg decoder also requires 9.2.1 steams to select "progressive". When "automatic" is used for the encoding, they are decoded even more incorrectly. So something is written into the header that causes additional problems on top |
12th December 2017, 21:45 | #57 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
Actually there are differences between vfw decode of 9.2.1 encoded vs. vfw decode of vdfm native encoded . 1st frame is identical , as are a few others. But other frames are not.
But you said : "I am not sure it is possible to compare results bit-to-bit from current sdk vs vfw 9.2.1 implementation. Probably something was changed. " Code:
a0 = core.avisource.AVISource(r'F:\_Video Tests\QT Prores\cineform_filmscan2_native.avi', pixel_type="v210") ap = core.avisource.AVISource(r'F:\_Video Tests\QT Prores\cineform_filmscan2_v9.2.1_prog.avi', pixel_type="v210") d = core.std.MakeDiff(a0,ap) da = core.std.Levels(d, min_in=511, max_in=513, gamma=1, min_out=0, max_out=1023, planes=[0,1,2]) da.set_output() |
12th December 2017, 22:03 | #59 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
I don't know about "most" different, but
frame zero (1st frame) was the same frame one (2nd frame) was different Some frames later on were identical, some were different. Again this is on amplified differences. On plain difference you can barely see any differences |
13th December 2017, 01:47 | #60 | Link | ||
Registered User
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
|
Quote:
Quote:
Code:
Bitrate of Cineform avi encode (Mb/s) - no audio Native VFW Filmscan 2 327 326 Filmscan 1 239 239 High 169 168 Medium 133 133 Low 122 122 Edit: And just for reference, same source clip transcoded to Cineform.avi with DaVinci Resolve 14.1 (at Full 'Data' levels), which uses a different terminology for the quality levels, just to confuse matters: Code:
Bitrate Mb/s Best (= Film Scan 2) 332 High (= Film Scan 1) 242 Medium (= High) 172 Low (= Medium) 135 Least (= Low) 124
__________________
Nostalgia's not what it used to be Last edited by WorBry; 13th December 2017 at 03:33. |
||
|
|