Page MenuHome

Add Ken Burns Mode to Transform strips, as an alternative approach to using high-resolution stills and videos in a low-resolution project
Needs RevisionPublic

Authored by Olly Funkster (Funkster) on Feb 9 2017, 6:02 PM.

Details

Summary

See T42355

Just for fun I have added a Ken Burns Mode (which will default to disabled if you load an old file) to the Transform strip, which makes it take its source strip's input at native resolution and thus allows panning & scanning with higher quality. Basically functional, but scaling quality is awful because the Transform strip is not actually designed to scale stuff down, only up.

If you're using a scale other than 1.0, set scaling to bicubic for the best result but it's still pretty poor (this needs to be fixed in the transform strip).

Simple demo:

Diff Detail

Repository
rB Blender

Event Timeline

Olly Funkster (Funkster) retitled this revision from to Add Ken Burns Mode to Transform strips, as an alternative approach to using high-resolution stills and videos in a low-resolution project.
Olly Funkster (Funkster) updated this object.
Olly Funkster (Funkster) set the repository for this revision to rB Blender.

Updated patch since it didn't apply against current master any more.

Isn't this the same as disabling scaling in source strip?
It should already work without modifications.

I know there was some discussion about this on multiple places, but I was not paying attention, so sorry if I am repeating some point already made.

Isn't this the same as disabling scaling in source strip?

Where's that option? If I tick "Image Offset" it doesn't get scaled down any more, is that what you mean?

Anyway, that would not allow setting of a scale other than 1.0, whereas with the transform strip you can set the scale to whatever you like, animate a zoom, etc.

I also probably haven't been paying enough attention, so maybe there's a better fix elsewhere!

Isn't this the same as disabling scaling in source strip?

Where's that option? If I tick "Image Offset" it doesn't get scaled down any more, is that what you mean?

Anyway, that would not allow setting of a scale other than 1.0, whereas with the transform strip you can set the scale to whatever you like, animate a zoom, etc.

I also probably haven't been paying enough attention, so maybe there's a better fix elsewhere!

Yes, sorry - it's image offset.
But then I think when you apply transform it will not work with full image. I did not think about that...

I want to create image processing library (AVX, pyAPI and node compatible), that would resolve this, but it will take some time.
But I am planning to start working on it after I finish cache and proxy management and that is almost done.

Once again feel free to merge this, I will be happy to remove it later :)

Once again feel free to merge this, I will be happy to remove it later :)

I don't have commit rights, so I'm at the mercy of whatever kind soul might merge it for me...

Once again feel free to merge this, I will be happy to remove it later :)

I don't have commit rights, so I'm at the mercy of whatever kind soul might merge it for me...

Me neither.
I wanted to create my own build, where I would collect uncommited patches and include them, so the community can actually benefit from this work. But amount of patches is growing, so I was thinking of actually maintaining VSE officially...
This was in my head for last week.
Again, this has to be done.

Brecht Van Lommel (brecht) requested changes to this revision.Dec 14 2018, 3:54 PM

@Richard Antalik (ISS) now has commit rights and can review this.

But here's some quick comments.

source/blender/blenkernel/intern/seqeffects.c
2152–2153
2160–2161

I'm not sure why this would require using one long line. It's possible to use intermediate variables within this if() {} block.

source/blender/blenkernel/intern/sequencer.c
2733–2734

No need to define these at the start of the function, can be done closer to where they are used.

2781

Same comment about comments style.

2785

Other code uses SeqRenderData localcontext = *context;, change it to be consistent with that.

2786

Is it certain that seq->seq1 is not NULL? Other places seem to check for it.

source/blender/makesrna/intern/rna_sequencer.c
2296

As I understand this is typically used for animated panning over a zoomed in part of an image, the description here is not very clear.

"Take input strip at native resolution" sounds more like a description of the implementation than what it does.

This revision now requires changes to proceed.Dec 14 2018, 3:54 PM
Campbell Barton (campbellbarton) requested changes to this revision.Dec 18 2018, 2:41 AM

Would rather avoid jokes in DNA/RNA, transform->use_scale_correction for eg.

@Campbell Barton (campbellbarton), are you referring to the name "Ken Burns" for this feature? I was going to ask to change that as well, but then it seems this is how the effect is usually named.
https://en.wikipedia.org/wiki/Ken_Burns_effect

Still a more descriptive name might be best, with "Ken Burns effect" mentioned in the description.

Would rather avoid jokes in DNA/RNA, transform->use_scale_correction for eg.

@Campbell Barton (campbellbarton), are you referring to the name "Ken Burns" for this feature? I was going to ask to change that as well, but then it seems this is how the effect is usually named.
https://en.wikipedia.org/wiki/Ken_Burns_effect

Still a more descriptive name might be best, with "Ken Burns effect" mentioned in the description.

Steve Jobs contacted Burns to obtain the filmmaker's permission to use the term "Ken Burns Effect" for Apple's video production software (the description had been Apple's internal working title while the feature was in development). Burns initially declined, saying that he did not allow his name to be used for commercial purposes. Instead, Burns had Jobs give him "some equipment which we give to nonprofits" in exchange for permission to use the term in Apple products.

Maybe we should ask him for permission?

Maybe we should ask him for permission?

As far as I can tell, Ken Burns effect has become the industry standard name for this style of panning & zooming across an image., rather similar to how a brand name becomes a replacement for a generic product. US examples would be kleenex for facials tissues or bandaids for adhesive bandages. As noted, Ken Burn effect even has it's own Wikipedia page which is a sign of being a cultural artifact. Ken Burns himself has acknowledged this.

On IRC, Burns effect was suggested as a common Hollywood usage. I like this - we don't bother Ken and it is shorter in menus and tooltips.