Skip to content
Permalink
Branch: nvenc-encoder
Commits on Jan 12, 2018
  1. NVENC: HB_VCODEC_{H264,H265}_MASK bits not unique, use matching macro…

    sgothel committed Jan 12, 2018
    … def instead
    
    Also add HB_VCODEC_FFMPEG_{VP8,VP9}_VAAPI for future use.
  2. FFMPEG: Use avcodec_free_context(..) instead of deprecated leaking av…

    sgothel committed Jan 12, 2018
    …codec_close(..)
    
    Hence rename hb_avcodec_close -> hb_avcodec_free_context and pass the required ptr-ptr.
    avcodec_free_context(..) ensures releasing of all resources attached to the context.
Commits on Jan 11, 2018
  1. libhb: Plug memory leak in NLMeans.

    bradleysepos committed Jan 11, 2018
    This reverts 0e072aa and implements a proper fix for some frames not being prefiltered correctly. Turns out it was an issue with an uninitialized variable.
Commits on Jan 10, 2018
  1. build: Add sign function to macosx module.

    bradleysepos committed Jan 10, 2018
    make sign ID="Developer ID"
  2. build: More robust failure on missing or old nasm.

    bradleysepos committed Jan 10, 2018
    Since Linux and similar use system x264, avoid failure on missing/old nasm, since it should not be needed.
  3. encx264: check correct build number in ifdef

    jstebbins authored and bradleysepos committed Dec 31, 2017
    The multi-lib change actually happend in build 153
  4. build: Unclobber PATH when shunting build through Xcode.

    bradleysepos committed Dec 29, 2017
    Tools shipping with Xcode are still in PATH, only moved from first to last priority. Avoids accidentally using old tools where a newer version is installed. This ensures the tools identified by configure will be the exact tools used by make via Xcode.
  5. scripts: Enable sections and lto for nasm.

    bradleysepos committed Dec 28, 2017
    Pass a couple standard variables since make sometimes makes zero sense.
  6. contrib: Make x264 cross options valid for all cross, not just mingw.

    bradleysepos committed Dec 28, 2017
    Also set CONFIGURE.build to null since the configure script has no clue about --build.
  7. build: Update configure.py to check for nasm >= 2.13.

    bradleysepos committed Dec 28, 2017
    Required for recent x264. Better to fail here than part-way through a build.
  8. x264: bump to build 155

    jstebbins authored and bradleysepos committed Dec 26, 2017
    Requires NASM to build
    Unified 8 and 10 bit library support
    AVX-512 optimizations
    Various other bug fixes and improvements
Commits on Jan 9, 2018
  1. libhb: Add CSM prefilter to NLMeans.

    bradleysepos committed Jan 9, 2018
    CSM is a Conservative Smoothing filter with Median-like tendencies.
    
    Conservative Smoothing is a basic noise reduction method that ensures a given pixel is within the values of those around it. A value higher than all the others is clamped to the maximum value in the neighborhood. Likewise, a value lower than all the others is clamped to the minimum value in the neighborhood. Basically, pixel values that seem to "fit in" are left alone, and extreme values are brought in line.
    
    CSM takes this a step further. A pixel not affected by the previous part of the algorithm is subjected to additional thresholding. If the pixel value is closer to the minimum or maximum neighborhood value than the median, it is clamped to the half-way point. Finally, a pixel still not affected is subjected to a third level of thresholding, clamping to the half-way point between the median and the previous half-way point. Any other pixel value is deemed close enough to its peers and left alone.
    
    In effect, this creates a "soft" median-like filter, where relatively similar values are left alone and increasingly disparate values are nudged closer together.
    
    Practically, CSM is the best prefilter to date for improving weight decisions with sources containing a type or amount of noise proving difficult for NLMeans to uniformly dampen or completely remove on its own. Additionally, it does not significantly alter the strength metric in most cases, so it can simply be enabled wherever desired. From what I can tell in my limited testing, the algorithm respects proper detail and edges well enough that it seems to be safe with nearly any source. Perhaps it should be the default if I ever get around to creating NLMeans 2.
    
    Unlike the mean and median prefilters where a larger neighborhood increases the strength of the prefilter, a larger CSM neighborhood merely takes more pixels into account, theoretically decreasing the strength of the filter. In practice, the provided 3x3 and 5x5 neighborhoods typically do not produce significantly differing results.
    
    Basic usage: Add y-prefilter=16 to your desired parameters and NLMeans will use CSM for weighting decisions. Use y-prefilter=2064 if you want to see the output of the prefilter itself—the visual effect is mild. Adjust these values to 32 and 2080 for a 5x5 neighborhood; 3x3 works well in all cases I've tried.
Commits on Jan 4, 2018
  1. QSV: fix ICQ availability detection for HEVC encoder.

    Rodeo314 committed Jan 4, 2018
    Explicitly set all relevant rate control parameters when
    querying for availability of a given rate control method.
    
    I still "blame" Intel, as the existing code managed to
    query ICQ availability for the H.264 encoder just fine.
Commits on Jan 1, 2018
Commits on Dec 30, 2017
  1. WinGui: Update to build script.

    sr55 committed Dec 30, 2017
Older
You can’t perform that action at this time.