Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Heavy blurring even when using FGA #406

Open
lvl1337 opened this issue Jul 18, 2024 · 1 comment
Open

Heavy blurring even when using FGA #406

lvl1337 opened this issue Jul 18, 2024 · 1 comment
Labels
library Concerns the VVenC library question Further information is requested

Comments

@lvl1337
Copy link

lvl1337 commented Jul 18, 2024

What the title says. I've tried with QPA on and off but both have the same issues. FGA does improve it a good bit but things like subtle banding or background art seem to be getting blurred immensely. This is known to be related to a trick regarding improvements in PSNR scores but it's psychovisually displeasing, even more so since the temporal filter is not doing a good job at cleaning up source artifacts.

Assigning a strength factor to this would allow for weakening the effect of the temporal filter as the user sees fit, leading to this problem not being as serious as it is now.

@adamjw24
Copy link
Member

adamjw24 commented Jul 18, 2024

The automatic formula for assigning temporal filter strenghts is as follows:

    const int log2GopSize = std::min<int>( 6, vvenc::floorLog2( c->m_GOPSize ) );

    c->m_vvencMCTF.numFrames = c->m_vvencMCTF.numStrength = std::max( 1, log2GopSize - ( ( c->m_QP - ( c->m_RCTargetBitrate > 0 ? 1 : 0 ) ) >> 4 ) );

    for ( int i = 0; i < c->m_vvencMCTF.numFrames; i++ )
    {
      c->m_vvencMCTF.MCTFFrames[i] = c->m_GOPSize >> ( c->m_vvencMCTF.numFrames - i - 1 );
      c->m_vvencMCTF.MCTFStrengths[i] = vvenc::Clip3( 0.0, 2.0, ( c->m_QP - 4.0 ) / 8.0 ) / double ( c->m_vvencMCTF.numFrames - i );
    }
    c->m_vvencMCTF.MCTFStrengths[c->m_vvencMCTF.numFrames - 1] = vvenc::Clip3( 0.0, 1.5, ( c->m_QP - 4.0 ) * 3.0 / 32.0 );

You can override the defaults using the parameters MCTFFrame and MCTFStrength (eg. --MCTFFrame=32,16,8 --MCTFStrength=1,1,1). m_GOPSize is always 32, all the other parameters are your input.

Let me know if you find better parameters.

It would also be helpful to have your video to be able to inspect what is happening.

Best, Adam

@adamjw24 adamjw24 added question Further information is requested library Concerns the VVenC library labels Jul 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
library Concerns the VVenC library question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants