logo
background
 Home and Links
 Your PC and Security
 Server NAS
 Wargames
 Astronomy
 PhotoStory
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Notes index links

Current main topic notes (includes mini-projects, common circuits and common code snippits etc.)



(-) 02 Avoiding Jitter


Improving PhotoStory 3 output quality

1) Always build your Story at 30fps (Profile setting)

This means a Profile setting of avgtimeperframe="333333". The pixel counts will be whatever you need for photoyour final movie (eg 720x576 for DVD or 1440x1080 for 16:9 133% pre-distorted HD)

2) Do your own photo interpolation

Pre-crop each displayed . Chop the photo into multiple parts to force extra sub-frames.

For each image :- a) Generate a new entry = transitoin with previous photo (t= half the total transition time) b) Subtract time for post-transition  (if any) as the 'last' entry, t= half next image transition time c) Chop up the remaining time into sub-entries, t=0.5s (or less) each

3) Provide lots of pixels

Chopping the photos into smaller steps could easily lead to 'zoom jitter' (caused by Photo-Story's interpolation from the start to the end of the zoom). One way to minimise this is to feed PS3 lots of pixels. However there is a limit .... each 7200x5400 photo at 8x jpeg compression will require about 6.75Mb. A 'typical' 10 minute (600 second) story 'chopped' into 0.5s steps will take up approx 6.75x1200 or about 8Gb. Even if PhotoStory can cope with 8Gb projects,it's highly unlikely we can build them :-)

Fortunately, the 'Visual Units' are not numbered, so splitting them into smaller parts is easy.

; Note - the first and last have to be treated as 'exceptions' Open the Project.xml, read and save firts 2 line :loop if all i/p done, exit
else Get next vu, set vuTotalTime
get transition with previous, set prevTime
get transition with next, set nextTime
get start box (integer pixel posn) 
get end box (integer pixel posn) 
if start=end, no split needed, copy entire vu to output and loop:
if prevTime not zero, subtract prevTime from vuTotalTime and o/p prev-transition vu
subtract nextTime from vuTotalTime
multiply vuTotalTime by 2 to get N .5 frames
o/p N sub-frames
if nextTime not zero, o/p next-transition vu
back to loop:


Before the split, start and end crop box consist of an integer pixel positions (upperleft X & Y) and an integer height & width. The goal, after the split, is to keep pixel accuracy.
This note last modified: 27th May 2016 05:52.

[top]

(+) 02 RAM disks

(+) 0300 Jitter tests

(+) 07 The nonsense of RISC

(+) HowTo.txt (no desc)

(+) Dec 1969 (no desc)

Next subject :- index

[top]