Move loop restoration coefficients to within the frame
Rather than encoding the loop restoration coefficients at the start of the frame header, this patch moves them to occur just after certain top-level superblocks. You might hope that we could just encode coefficients on top-level superblocks where the top-left corner of the superblock was also the top-left corner of the loop restoration tile. Unfortunately, this can't work with the superres experiment, where the loop restoration tiles don't necessarily line up with the superblocks. Indeed, in general there can be multiple different loop restoration coefficients that apply in a given top-level superblock. This patch defines a function, av1_loop_restoration_corners_in_sb, which yields the rectangle [rrow0, rrow1) x [rcol0, rcol1) of loop restoration tiles whose top left corners lie in this top-level superblock. The total file size should be unchanged by this patch: the bits have just been moved from the frame header and spread out among the rest of the frame. Change-Id: Icf43b0560964a63dea0d2cd801313f04139188d7
parent
e84eec54
No related branches found
No related tags found
Showing
- av1/common/blockd.h 17 additions, 0 deletionsav1/common/blockd.h
- av1/common/restoration.c 64 additions, 0 deletionsav1/common/restoration.c
- av1/common/restoration.h 14 additions, 9 deletionsav1/common/restoration.h
- av1/decoder/decodeframe.c 72 additions, 99 deletionsav1/decoder/decodeframe.c
- av1/encoder/bitstream.c 60 additions, 91 deletionsav1/encoder/bitstream.c
Loading
Please register or sign in to comment