[FFmpeg-devel] [GSoC] Motion Interpolation

Davinder Singh ds.mudhar at gmail.com
Sat Aug 13 15:18:56 EEST 2016

On Thu, Aug 11, 2016 at 12:10 AM Davinder Singh <ds.mudhar at gmail.com> wrote:

> [...]
> latest changes:
uses shared motion estimation code now, added options, improved vsbmc
i tried to make filter options as flexible as possible so that multiple
algorithms are be supported.

have a look:
i think if penalty factor can be moved into cost function, motion
estimation can be shared with encoders. we can start work on this after

frame border motion estimation.
add scene change threshold. roughness check doesn't work so well and
introduce artifacts.
add docs.

> here's another idea: dynamic block size selection for MC-FRUC
> since it's not video encoding, using 16x16 block with fixed search window
> may not work same for all resolution videos. what if we automatic resize
> block depending on resolution? like if 16x16, P=20 works fine for 1280x720
> video, we can scale it according to width, e.g for 1920x1080 which 1.5x
> 1280, we use 24x24 block and also scale P accordingly? i haven't tested it
> yet though.

i tested this. quality was improved with 1080p but not with smaller

I tried to scale best settings of 720p. UMH. 1080p same video.
scale nothing: mb16 p18
stddev:    1.16 PSNR: 46.80 MAXDIFF:  197 bytes:1085529600/1073088000
scale search window: mb16, p27
stddev:    1.21 PSNR: 46.47 MAXDIFF:  193 bytes:1085529600/1073088000
scale both: mb24 p18
stddev:    1.14 PSNR: 46.93 MAXDIFF:  181 bytes:1085529600/1073088000

mb16 p16:
stddev:    1.18 PSNR: 46.65 MAXDIFF:  181 bytes:1085529600/1073088000
mb24 p24:
stddev:    1.16 PSNR: 46.77 MAXDIFF:  181 bytes:1085529600/1073088000

640p ESA
m16 p16:
stddev:    1.01 PSNR: 47.97 MAXDIFF:  160 bytes:119577600/118540800
scale p: mb16 p8:
stddev:    1.02 PSNR: 47.95 MAXDIFF:  148 bytes:119577600/118540800
scale both: m8 p8:
stddev:    1.05 PSNR: 47.63 MAXDIFF:  187 bytes:119577600/118540800

i think quality can be further improved, generated test window weights were
not perfect.
should i keep this feature? since block-size won't be log2 int, that will
break vsbmc which use quadtree division for smaller blocks.

> [1]: JVT-F017.pdf by Z Chen <http://akuvian.org/src/x264/JVT-F017.pdf.gz>

On Thu, Aug 11, 2016 at 9:09 PM Paul B Mahol <onemda at gmail.com> wrote:

> Could you please squash your commits and attach patches that add
> vf_mestimate
> and vf_minterpolate filters?

patch attached.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-added-motion-estimation-and-interpolation-filters.patch
Type: application/octet-stream
Size: 90218 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160813/c4d53971/attachment.obj>

More information about the ffmpeg-devel mailing list