Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Support intra edge filtering #2083
This adds support for and enables the intra edge filter for directional prediction and closes #1065.
This AWCY run has the following results (at speed level 2):
Run time when called natively is around 4% worse than master on this run. The native version could probably be better optimized.
I was considering adding a speed preset for it, but I don't think it would be too useful since it is only applied when directional prediction modes are enabled, which is only at lower levels where we would want to turn this on anyway.
The AVX2 version does not work (it desyncs). My guess is that it is due to pixels being initialized when they should not, or vice versa, in the edge buffer, as changing the
It remains disabled, pending testing. It also currently does not support the smooth filter type, which should be selected when a neighboring context block uses a smooth mode.
This requires persisting coded partition information within a tile, and passing that information along to the directional prediction function, as well as the plane being predicted. The IntraEdgeFilterParameters structure is added to contain the extra information, and it is wrapped in an Option to replace the existing enable_intra_edge_filter argument.
The AVX2 assembly is not working with the intra edge filter yet. When enabled, it can generate desyncs, or segfault if the smooth filter type is used. Therefore, fall back to the native version when it is selected.