This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Converting h264 1080p 4.2.0 8 bit to 4.2.2 10 bits for color grading using Hybrid!
#11
Banding artifacts, depending on your settings and format artifacts in dark or flat areas and slight changes due to chroma subsampling. Both can be avoided or at least lessened by:
a. using formats (especially intermediate formats) with 10bit or higher calculation precision
b. adding grain to lessen banding during encoding when going for 8bit formats
c. always use decent bit rates
d. use adaptive quantization if the output format supports it.

10 bit ProRes 422HQ should be way faster than to 10bit x265 and will behave way faster and smoother on timeline during editing without need of any proxy or background render.
Don't really see a reason for that assuming your graphic card supports hardware decoding of H.265 and your NLE isn't crappy. Personally I would use H.264 or H.265 lossless as intermediate and not some lossy format like ProRes. They say it's 'Apple ProRes 422 HQ offers visually lossless preservation of the highest-quality professional HD video that a single-link HD-SDI signal can carry', but that's different from lossless and still will cause degration if you have lots of intermediate steps where you recompress the content over and over again. So if you use lots of intermediate steps I would recommend using a lossless format instead depending on your quality needs. (On Windows you could also use hardware encoding for lossless H.265, H.264 formats.)

Cu Selur
Reply
#12
Wow this is top class help! Thank you both so much, I'm going to try those settings and post results here.
REALLY appreciate this!
Reply
#13
(09.09.2021, 07:25)Selur Wrote: Don't really see a reason for that assuming your graphic card supports hardware decoding of H.265 and your NLE isn't crappy. Personally I would use H.264 or H.265 lossless as intermediate and not some lossy format like ProRes. They say it's 'Apple ProRes 422 HQ offers visually lossless preservation of the highest-quality professional HD video that a single-link HD-SDI signal can carry', but that's different from lossless and still will cause degration if you have lots of intermediate steps where you recompress the content over and over again. So if you use lots of intermediate steps I would recommend using a lossless format instead depending on your quality needs. (On Windows you could also use hardware encoding for lossless H.265, H.264 formats.)

Cu Selur

Codec is not only about image quality. It is also about speed and support across multiple apps and systems.
For example FFV1 seems like nice and fast codec that preserves original 420 or 422 or 444 chroma sampling and do not force oversample everything to 422 or 444. But it is not supported NLEs at all. So currently it useful only as intermediate codec if you need to do multiple transcodings within Hybrid and maybe some other FFmpeg-based apps.

ProRes is not true lossless and it was discussed many times, but it is stable codec that supported in almost any macOS and Windows NLE and used in hardware cameras and recorders. It will not pass away. It is supported in FFmpeg. You can always use ProRes444 ot 4444XQ for less "invisible" block edges noise or other sorts of invisible degradation. It is also possible to manually increase bits per Macroblock in ProRes 422 if you feel that it is not enough for you. By the way, i discover that some apps that use real Apple ProRes codec use 1800 bits per Macroblock as default for ProRes422HQ.

There is also Cineform codec. It is extremely fast. It wavelet-based codec and so it have no block structure at all. It is supported in many NLEs.

As for x264/265 Lossless for me it always was a question - what is correct way to set it it?
Constant quantizer - Lossless became active only if i switch to AVC/Profile Level High444 or none.
After that i can also choose 8, 9 or 10 bit depth and i420, i422 or i444 chroma.
What about other settings? Should i set Preset and Tune? Should i set some specific number of reference frames? Should i use B-Frames or don't? Any other hidden settings?
Guess it may be really useful to provide some special article or thread about proper setup of x264/265 Lossless in Hybrid.
Reply
#14
@shijian:
Quote:Guess it may be really useful to provide some special article or thread about proper setup of x264/265 Lossless in Hybrid.
I guess it might be to you, but at least I don't have the time or motivation to write it.

Quote:Constant quantizer - Lossless became active only if i switch to AVC/Profile Level High444 or none.
Makes sense, since that is the profile which is required for lossless encoding.
It's like complaining that you can't encode UHD content with Level 1, that's what the specification of the format says.

Quote:After that i can also choose 8, 9 or 10 bit depth and i420, i422 or i444 chroma.
Those options set which bit depth and chroma sampling the content will be converted to for encoding. So if you convert to a lower bit depth or chroma sampling than your input you will loose quality. Lossless encoding is always based on the content you feed the encoder.

Quote:But it is not supported NLEs at all.
Then if you want to complain about it, complain to the manufacturer of the NLE. This is totally unrelated to Hybrid.

Quote:What about other settings? Should i set Preset and Tune? Should i set some specific number of reference frames? Should i use B-Frames or don't? Any other hidden settings?
When using lossless encoding, all those setting change the relation between 'output size' <> 'encoding time' and 'decoding time'. They do not change the quality, since that is fixed to lossless.

Cu Selur
Reply
#15
Thanks to your tips and updated Hybrid version done some codec speed vs size tests!

ORIGINAL 768x576 FFV1 8-bit 4:2:0 + Grain Factory = 902 MB
transcoded with Hybrid to:

FFV1 v3 4:2:0 8-bit = 260-270 FPS, 902 MB
FFV1 V3 4:2:0 10-bit = 180-186 FPS, 922 MB
ProRes 4:2:2 HQ 10-bit = 114 FPS, 936 MB
Cineform FS1 4:2:2 10-bit = 480 FPS, 732 MB
Cineform FS2 4:2:2 10-bit = 470 FPS, 1.16 GB
Cineform FS3 4:2:2 10-bit = 470 FPS, 1.24 GB
x264 Lossless 4:2:0 8-bit Preset Medium = 100-130 FPS, 942 MB
x264 Lossless 4:2:0 8-bit Preset Slow = 70-87 FPS, 940 MB
x264 Lossless 4:2:2 10-bit Preset Medium = 70-95 FPS, 1.74 GB
x264 Lossless 4:2:2 10-bit Preset Slow = 50-66 FPS, 1.73 GB

---------

ORIGINAL 768x576 FFV1 8-bit 4:2:0 = 768 MB
transcoded with Hybrid to:

FFV1 V3 4:2:0 8-bit = 280 FPS, 766 MB
FFV1 V3 4:2:0 10-bit = 195-205 FPS, 787 MB
ProRes 4:2:2HQ 10-bit = 119 FPS, 929 MB
Cineform FS1 4:2:2 10-bit = 505 FPS, 608 MB
Cineform FS2 4:2:2 10-bit = 480 FPS, 1.01 GB
Cineform FS3 4:2:2 10-bit = 475 FPS, 1.07 GB
x264 Lossless 4:2:0 8-bit Preset Medium = 130-140 FPS, 800 MB
x264 Lossless 4:2:0 8-bit Preset Slow = 70-92 FPS, 798 MB
x264 Lossless 4:2:2 10-bit Preset Medium = 74-99 FPS, 1.55 GB
x264 Lossless 4:2:2 10-bit Preset Slow = 55-71 FPS, 1.54 GB

Smile And just to compare to typical visually OK-looking compression:
x264 CRF 18.00 4:2:0 8-bit Preset Slow + Tune None = 100-90 FPS, 43 MB
x264 CRF 18.00 4:2:0 8-bit Preset Slow + Tune Grain = 75-69 FPS, 93 MB
Reply
#16
Okay, not really informative and also this should go in it's own thread if you want to discuss your results.
If you compare FFV1, ProRes,... you should look at these points:
  • support for different color samplings/color spaces
  • support for alpha channel
  • availability of hardware encoding
  • availability of hardware decoding
  • encoding speed (for all the supported color options on sd/hd/uhd content)
  • deccoding speed (for all the supported color options on sd/hd/uhd content)
  • lossless or not
  • encoded size (for all the supported color options on sd/hd/uhd content)
As a side note: FFV1 does also support 4:2:2, 4:4:4, Hybrid just doesn't offer to enforce a specific color sampling. Hybrid sticks with the color sampling it gets.

Cu Selur
Reply
#17
Ok, moved this to separate thread here https://forum.selur.net/thread-1987.html
Reply
#18
I will move the thread as it should not be in the 'Hybrid - Support' section.
Reply
#19
Yep, it probably belongs to common discussion...
Reply
#20
(09.09.2021, 05:26)shijan Wrote: It just depends of apps. Some apps use native bit depth and gamma of source video and process it in 8 bit if source is 8 bit. Other apps (like Ravinci Resolve) upconvert internally any source to 32 bit depth and process it with better quality. Have no idea what is going on inside Premiere because i don't use it.

I see your example is in Log. It is worst possible scenario for 8 bit because low depth 8 bit tonal data is stretched to even more low bit depth during transformation to normal Rec709 gamma.

Here is what you can do to improve your source further:

If source is really interlaced use customized QTGMC "Very Slow" or "Placebo"
Switch to custom settings
Source Matching: 2xrefined. It will give you more detailed deinterlacing. It is ok to use it with HD sources from modern cameras like yours.
Sharpness 0, to avoid new additional halos.
Final Temporal smoothing 2 or 3 will clean up noise.

(Optional) DeBlock - QED (may help a little bit to remove some codec artifacts)

(Optional) DeGrain - SMDegrain Temporal Radius 2 or 3 will clean up even more chroma noise artifacts.

(Optional) DeBand - GradFun3Mod will fill too empty with fine patterns to avoid banding.

(Optional) In the end you may try to add AddGrain - GrainFactory3 and adjust it to minimal size to bring back some "breathing" to the footage and mix pixel structure a little bit.

Some static chroma artifacts like moire and aliasing are generated by camera sensor itself and near impossible to remove. Spartial Chroma Noise reduction may help a little bit. 

Optional filters (especially SMDegrain) will slowdown transcoding a lot.


By the way, export to 10 bit ProRes 422HQ should be way faster than to 10bit x265 and will behave way faster and smoother on timeline during editing without need of any proxy or background render.

Dear @selur and @shijan, I tried following the instructions here to improve the color correction but I cannot get hybrid to work.
Here is the crashlog
https://drive.google.com/open?id=1hbdw1H...F7i5m4_vib

and the original file
https://drive.google.com/open?id=17wZUri...Nw92ZOdufL


Hope it helps!
Thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)