diff options
author | Henrik Gramner <gramner@twoorioles.com> | 2020-01-29 16:17:11 +0300 |
---|---|---|
committer | Henrik Gramner <gramner@twoorioles.com> | 2020-02-01 16:17:56 +0300 |
commit | bb178db019da21d62fae8c255675efbd84327195 (patch) | |
tree | 9eef133c2a24b8612947dc92ef990d0f8f2069e7 /src/internal.h | |
parent | dccc21b742f328060c124463c5d05f76472d758c (diff) |
Rework the CDEF top edge handling
Avoids some pointer chasing and simplifies the DSP code, at the cost
of making the initialization a little bit more complicated.
Also reduces memory usage by a small amount due to properly sizing
the buffers instead of always allocating enough space for 4:4:4.
Diffstat (limited to 'src/internal.h')
-rw-r--r-- | src/internal.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/internal.h b/src/internal.h index 9b8d3b4..2254b00 100644 --- a/src/internal.h +++ b/src/internal.h @@ -216,12 +216,14 @@ struct Dav1dFrameContext { Av1Filter *mask; Av1Restoration *lr_mask; int top_pre_cdef_toggle; - int mask_sz /* w*h */, lr_mask_sz, line_sz /* w */, lr_line_sz, re_sz /* h */; + int mask_sz /* w*h */, lr_mask_sz, cdef_line_sz[2] /* stride */; + int lr_line_sz, re_sz /* h */; ALIGN(Av1FilterLUT lim_lut, 16); int last_sharpness; uint8_t lvl[8 /* seg_id */][4 /* dir */][8 /* ref */][2 /* is_gmv */]; uint8_t *tx_lpf_right_edge[2]; - pixel *cdef_line[2 /* pre, post */][3 /* plane */][2 /* y */]; + uint8_t *cdef_line_buf; + pixel *cdef_line[2 /* pre, post */][3 /* plane */]; pixel *lr_lpf_line[3 /* plane */]; // in-loop filter per-frame state keeping |