• Niklas Haas's avatar
    avcodec/aom_film_grain: add AOM film grain synthesis · 1535d338
    Niklas Haas authored
    Implementation copied wholesale from dav1d, sans SIMD, under permissive
    license. This implementation was extensively verified to be bit-exact,
    so it serves as a much better starting point than trying to re-engineer
    this from scratch for no reason. (I also authored the original
    implementation in dav1d, so any "clean room" implementation would end up
    looking much the same, anyway)
    
    The notable changes I had to make while adapting this from the dav1d
    code-base to the FFmpeg codebase include:
    
    - reordering variable declarations to avoid triggering warnings
    - replacing several inline helpers by avutil equivalents
    - changing code that accesses frame metadata
    - replacing raw plane copying logic by av_image_copy_plane
    
    Apart from this, the implementation is basically unmodified.
    1535d338
aom_film_grain_template.c 24.3 KB