Large images gets cropped when downscaled in VSE #54273

Closed
opened 2018-03-08 16:54:15 +01:00 by David Rylander · 36 comments

System Information
Linux. Nvidia GForce GTX580

Blender Version
Broken: 2.79.
Worked: (optional)

Short description of error
Large images added in VSE gets scaled to render size.
If we want to keep aspect ratio we need to tick Image Offset. The image is now displayed at its original aspect and size.
We want to downscale this to reasonably fit the window so we add a Transform Effect strip.
Downscaling the image now gets cropped to the area that is inside the render area.
Effectively we can't use large images, say a logo or an image we want to do a Ken Burns effect on, in the VSE.
See attacked .blend

Exact steps for others to reproduce the error
Set VSE render to 1920x1080
Import large image (like 2500x2500px).
Image gets squashed to render dimensions
Tick Image Offset in Strip Input. Image scales to original size and aspect ration.
Add Transform strip.
Scale to 0.5
See image cropped when downscaled.
cropped_large-image.blend

**System Information** Linux. Nvidia GForce GTX580 **Blender Version** Broken: 2.79. Worked: (optional) **Short description of error** Large images added in VSE gets scaled to render size. If we want to keep aspect ratio we need to tick Image Offset. The image is now displayed at its original aspect and size. We want to downscale this to reasonably fit the window so we add a Transform Effect strip. Downscaling the image now gets cropped to the area that is inside the render area. Effectively we can't use large images, say a logo or an image we want to do a Ken Burns effect on, in the VSE. See attacked .blend **Exact steps for others to reproduce the error** Set VSE render to 1920x1080 Import large image (like 2500x2500px). Image gets squashed to render dimensions Tick Image Offset in Strip Input. Image scales to original size and aspect ration. Add Transform strip. Scale to 0.5 See image cropped when downscaled. [cropped_large-image.blend](https://archive.blender.org/developer/F2431160/cropped_large-image.blend)
Author

Added subscriber: @animationista

Added subscriber: @animationista

#75764 was marked as duplicate of this issue

#75764 was marked as duplicate of this issue

#67905 was marked as duplicate of this issue

#67905 was marked as duplicate of this issue

Added subscriber: @Paskperfect

Added subscriber: @Paskperfect

Behavior described by David Rylander has been present for a long time, and I don’t think that it is an error. Here’s a way that I recently found to handle:

  1. Do not tick the Offset-Image button in the Image-Strip properties.
  2. Add the Transform strip for the Image Strip.
  3. In the Transform-Strip properties, create a Driver for X-scale, to be driven by the Y-scale value, and
  4. Adjust its Scripted-Expression of this X-scale driver to be the original ratio of the original image. (note: find original dimensions of image in the Image-Strip properties).

in David Rylander's example, the 2500X2500 image has a 1:1 ratio, so the driver expression 'var *(2500/2500)' will always keep the X-Scale at 1:1 with the driver Y-Scale value ('var'). Any change in the Y-scale value will update the X-scale value, so animating changes in the Y-scale value will animate properly proportioned zooming in and out of the image.

Just happened to be working on possibly making a tutorial for this - but didn’t know if anyone else thought of this.

Behavior described by David Rylander has been present for a long time, and I don’t think that it is an error. Here’s a way that I recently found to handle: 1. Do not tick the Offset-Image button in the Image-Strip properties. 2. Add the Transform strip for the Image Strip. 3. In the Transform-Strip properties, create a Driver for X-scale, to be driven by the Y-scale value, and 4. Adjust its Scripted-Expression of this X-scale driver to be the original ratio of the original image. (note: find original dimensions of image in the Image-Strip properties). in David Rylander's example, the 2500X2500 image has a 1:1 ratio, so the driver expression 'var *(2500/2500)' will always keep the X-Scale at 1:1 with the driver Y-Scale value ('var'). Any change in the Y-scale value will update the X-scale value, so animating changes in the Y-scale value will animate properly proportioned zooming in and out of the image. Just happened to be working on possibly making a tutorial for this - but didn’t know if anyone else thought of this.

Looking back over my notes, I can see that number 4 is probably not quite right. different video formats can use different aspect ratios for their final display. So, someone with a better handle on the math can correct me on the proper ratio(s).

Still, using a driver is a nice way to keep both X and Y scaling 'in step' when you want to zoom in and out on an image. I don't know how this 'trick' affects the render time, though.

Looking back over my notes, I can see that number 4 is probably not quite right. different video formats can use different aspect ratios for their final display. So, someone with a better handle on the math can correct me on the proper ratio(s). Still, using a driver is a nice way to keep both X and Y scaling 'in step' when you want to zoom in and out on an image. I don't know how this 'trick' affects the render time, though.

Added subscriber: @davidmcsween

Added subscriber: @davidmcsween

I agree that it is not a bug.

However handling the scale in this way only creates an image that "fits" the cropped image when zoomed to 1:1 pixel size. Most people want to scale an image to taste (keeping correct aspect, you cannot do this in the VSE as it normalizes all inputs to project dimensions, loosing resolution. You would correct aspect when small and zoom in resulting in a blurry image. Alternative is to use Movie clip and stabilize function or the compositor in another scene or a 3D view from another scene.

I agree that it is not a bug. However handling the scale in this way only creates an image that "fits" the cropped image when zoomed to 1:1 pixel size. Most people want to scale an image to taste (keeping correct aspect, you cannot do this in the VSE as it normalizes all inputs to project dimensions, loosing resolution. You would correct aspect when small and zoom in resulting in a blurry image. Alternative is to use Movie clip and stabilize function or the compositor in another scene or a 3D view from another scene.

david mcsween is correct. In my tests with Blender 2.79, a large images' resolution is diminished when they are reduced to fit into a project's available 'buffer space' (my terminology). So, the next best thing that I can think of is to increase the project's buffer space (temporarily?). David Rylander's original example was an image that 2500x2500px, clearly larger than the 1920x1080 screen. Maybe he can try this:

  1. Go to the Properties Editor Window, Render tab, and find the Dimensions sub-section to see the project's screen dimensions.
  2. If the final shot requires a zoom-in to close-up view of the original image, try to increase the Resolution percentage as much as possible (I was able to get my Mac version of Blender to go up to at least 1000%). Anything greater than the dimensions of the over-sized image is a good place to start.
  3. Render the image-zooming strip sequence at the highest resolution that you dare.
  4. When you re-import the high-definition version of the animated zoom sequence back into your project (set to normal resolution of 100%), the project will be reduced down, to fit into the regular dimension size (without 'Offset image' radio button active). Aspect ratio has not been altered between the high and regular resolution versions of the project. Any resolution loss, at this point, will not be due 'throwing away' pixel information that was in the original, oversized, image.

Yes, as david mcsween points out, this is like re-processing the video (or image) in another scene. Maybe all strips requiring this treatment can be lined up, end to end, and be converted in one big, painfully long, rendering session.

david mcsween is correct. In my tests with Blender 2.79, a large images' resolution is diminished when they are reduced to fit into a project's available 'buffer space' (my terminology). So, the next best thing that I can think of is to increase the project's buffer space (temporarily?). David Rylander's original example was an image that 2500x2500px, clearly larger than the 1920x1080 screen. Maybe he can try this: 1. Go to the Properties Editor Window, Render tab, and find the Dimensions sub-section to see the project's screen dimensions. 2. If the final shot requires a zoom-in to close-up view of the original image, try to increase the Resolution percentage as much as possible (I was able to get my Mac version of Blender to go up to at least 1000%). Anything greater than the dimensions of the over-sized image is a good place to start. 3. Render the image-zooming strip sequence at the highest resolution that you dare. 4. When you re-import the high-definition version of the animated zoom sequence back into your project (set to normal resolution of 100%), the project will be reduced down, to fit into the regular dimension size (without 'Offset image' radio button active). Aspect ratio has not been altered between the high and regular resolution versions of the project. Any resolution loss, at this point, will not be due 'throwing away' pixel information that was in the original, oversized, image. Yes, as david mcsween points out, this is like re-processing the video (or image) in another scene. Maybe all strips requiring this treatment can be lined up, end to end, and be converted in one big, painfully long, rendering session.

Added subscriber: @Funkster-3

Added subscriber: @Funkster-3

Hi folks, you might find this interesting. It's from a while ago so probably doesn't compile with current blender source...

https://developer.blender.org/D2506

Hi folks, you might find this interesting. It's from a while ago so probably doesn't compile with current blender source... https://developer.blender.org/D2506

Added subscriber: @jfro

Added subscriber: @jfro

Just wanted to add to this since I was just recently trying out VSE to do some simple video editing & video transform effects.

Also found out this limitation, which also applies to videos. So my hope was pulling in a over sized video so that I can zoom to focus on an area of the video and have it remain crisp. But any strip added to the editor gets cropped or scaled to fit before it reaches a transform effect strip. It'd definitely be nice if it could preserve the source's original dimensions and let the transform do it's work on that.

Just wanted to add to this since I was just recently trying out VSE to do some simple video editing & video transform effects. Also found out this limitation, which also applies to videos. So my hope was pulling in a over sized video so that I can zoom to focus on an area of the video and have it remain crisp. But any strip added to the editor gets cropped or scaled to fit before it reaches a transform effect strip. It'd definitely be nice if it could preserve the source's original dimensions and let the transform do it's work on that.

Added subscriber: @iss

Added subscriber: @iss

I would remove scaling and color grading from sequencer panel on strips and get rid of preprocessing stage. Also it seemed to me, that this stage has it's own cache - useless and waste of resources.
Use effects!

Just a side note: I tried to bypass preprocessing, but multithreaded effects seems to rely on preprocess cache...

I would remove scaling and color grading from sequencer panel on strips and get rid of preprocessing stage. Also it seemed to me, that this stage has it's own cache - useless and waste of resources. Use effects! Just a side note: I tried to bypass preprocessing, but multithreaded effects seems to rely on preprocess cache...
unblockedgamess commented 2018-09-22 19:23:26 +02:00 (Migrated from localhost:3001)

Added subscriber: @unblockedgamess

Added subscriber: @unblockedgamess
unblockedgamess commented 2018-09-22 19:23:26 +02:00 (Migrated from localhost:3001)

This comment was removed by @unblockedgamess

*This comment was removed by @unblockedgamess*

Added subscriber: @brecht

Added subscriber: @brecht
Richard Antalik self-assigned this 2019-01-17 01:13:12 +01:00
Member

Added subscribers: @mikeycal, @lichtwerk, @zeauro

Added subscribers: @mikeycal, @lichtwerk, @zeauro
Richard Antalik was unassigned by Dalai Felinto 2019-12-23 16:36:18 +01:00

Added subscriber: @nottelmo-4

Added subscriber: @nottelmo-4

Added subscriber: @edg422

Added subscriber: @edg422

Just to note this is still on 2.82 and not yet "fixed". When importing a large image (larger than output resolution), ticking "Offset" in transform (since is the only way to regain original aspect ratio), and then trying to scale, the rest of the image is lost.

Just to note this is still on 2.82 and not yet "fixed". When importing a large image (larger than output resolution), ticking "Offset" in transform (since is the only way to regain original aspect ratio), and then trying to scale, the rest of the image is lost.

Added subscriber: @propersquid

Added subscriber: @propersquid

Added subscriber: @Unsigno

Added subscriber: @Unsigno

This problem persist on 2.9, the image doesn't need to be larger than the output size, this bug/issue happens with every image having different aspect ratio than output size.

This problem persist on 2.9, the image doesn't need to be larger than the output size, this bug/issue happens with every image having different aspect ratio than output size.

Again, this is not a bug. The VSE was designed to display media that "conforms" to the project dimensions, this is supposed to make it play back faster. I guess if you want some media to resize in the project dimensions then use a different part of blender to achieve that. You can use the compositor or 3D view or Movie Clip editor and stabilise function.

Again, this is not a bug. The VSE was designed to display media that "conforms" to the project dimensions, this is supposed to make it play back faster. I guess if you want some media to resize in the project dimensions then use a different part of blender to achieve that. You can use the compositor or 3D view or Movie Clip editor and stabilise function.

Added subscriber: @tintwotin

Added subscriber: @tintwotin

This add-on by bikebot may be a temp fix for users in this situation(I only updated it to 2.8+): https://github.com/tin2tin/blender-reset-aspect-ratio It'll show up in the Transform strip properties in the sidebar.

This add-on by bikebot may be a temp fix for users in this situation(I only updated it to 2.8+): https://github.com/tin2tin/blender-reset-aspect-ratio It'll show up in the Transform strip properties in the sidebar.

Then it should be changed to "feature request", but working with images on video editing is a common requirement and the current approach makes it hard and counterintuitive.

@tintwotin thanks for your add-on, I'll be taking a look at it.

Then it should be changed to "feature request", but working with images on video editing is a common requirement and the current approach makes it hard and counterintuitive. @tintwotin thanks for your add-on, I'll be taking a look at it.

Added subscriber: @OnlyLightMatters

Added subscriber: @OnlyLightMatters

In #54273#939936, @Unsigno wrote:
Then it should be changed to "feature request", but working with images on video editing is a common requirement and the current approach makes it hard and counterintuitive.

Yes, it should be possible to do so straightforwardly like in any other tool.

> In #54273#939936, @Unsigno wrote: > Then it should be changed to "feature request", but working with images on video editing is a common requirement and the current approach makes it hard and counterintuitive. Yes, it should be possible to do so straightforwardly like in any other tool.

I will move this to 2.91 because this will be new feature (even though it's listed as bug) and it could will be buggy.

I will move this to 2.91 because this will be new feature (even though it's listed as bug) and it could will be buggy.

Maybe @iss can confirm if this will be solved by this patch? https://developer.blender.org/D8393

Maybe @iss can confirm if this will be solved by this patch? https://developer.blender.org/D8393

In #54273#1037890, @tintwotin wrote:
Maybe @iss can confirm if this will be solved by this patch? https://developer.blender.org/D8393

Yes this will be soved partially by D8393.
Another problem here is having same approach for compositions, that will have to be solved separately.

> In #54273#1037890, @tintwotin wrote: > Maybe @iss can confirm if this will be solved by this patch? https://developer.blender.org/D8393 Yes this will be soved partially by [D8393](https://archive.blender.org/developer/D8393). Another problem here is having same approach for compositions, that will have to be solved separately.

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Richard Antalik self-assigned this 2020-11-09 17:50:29 +01:00

This is resolved for images and movies by e1665c3d31
You can check this feature in 2.92 version in daily builds https://builder.blender.org/download/

For compositions this is still TODO.

Since original report wasn't about this and it will require some design, I will close this as resolved.

This is resolved for images and movies by e1665c3d31 You can check this feature in 2.92 version in daily builds https://builder.blender.org/download/ For compositions this is still TODO. Since original report wasn't about this and it will require some design, I will close this as resolved.
Thomas Dinges added this to the 2.91 milestone 2023-02-08 16:21:50 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
14 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#54273
No description provided.