hpdz.net

High-Precision Deep Zoom

Animations

Technical Animations
PanTest2-HDHigh-def demo of complex motion with frame interpolation
CircleDemo of new scripting system for multi-segment animations
ZeroOne (aka "ooo")Cool multi-sine-wave synthetic sound track, zooms directly into (0,1) to a depth of E-43
HiPrecPanTestPanning and zooming on the spike
PanTest2A much more elaborate test of the panning operation
HowNotToZoomAn example of an early problem I had with panning and zooming
Frame InterpolationComparison of nearest-neighbor and bilinear interpolation, if you must do this
Rank-Order ColoringA novel way to color the images uniformly with the color palette using a rank-order method

The video files on this page may be freely distributed as long as they are credited to Michael Condron of HPDZ.NET.

PanTest2HD 160 MB MP4
Encoded with FastStart.
But better to just save it.
Right click, then select "Save".

PanTest2-HD

Date Generated:22 Dec 10
Final Image Size:1.8e-12
Resolution:1280x720
Video Length:66 sec
Frames:1990
Rendering Time:8:10 hours
Method:Frame interpolation
Audio:None
File Size and Type:160 MB MP4
Bit rate:20.4 Mbps

This was originally created as a test of whether the panning and zooming system was working (see PanTest2 below). After discovering a bug in the frame interpolation system when certain types of complicated panning and zooming motions occurred, this sequence of images seemed like a good way to exercise the system.

It is also a nice high-definition video in its own right. It is encoded at 20 Mbps for nearly perfect detail with minimal compression artifact.

Due to a bug in the log file output from the software, I am not sure what pixel interpolation method was used, but I believe it was the "anti-aliasing" method.

Circle example fractal video frame
2.0 MB MP4

FastStart

Circle

Date Generated:10-12 May 2008
Final Image Size:4
Resolution:320x240
Video Length:30 sec
Frames:320 looped thrice
Rendering Time:Few seconds
Method:Standard escape counts
Audio:Acid Pro custom composition
File Size and Type:2.0 MB MP4

This is a very quick demo of the capability of my new scripting system for connecting animation segments together. It is not really spectacularly new or imaginative, but it does make my life much easier when generating multi-segment videos, which are videos that move to a certain point, then zoom, then move to another point, etc. Check out HiPrecPanTest and PanTest2 for examples. I haven't done very many because they were very difficult to do with my previous system. The new system makes it much easier to make them, and this animation of the M-set moving in a circle is an example.

ZeroOne fractal video frame

ZeroOne (AKA "oooooo" -- listen to the audio to find out why)

Date Generated:8 Jul 07
Final Image Size:1.0 E-43
Resolution:352x240 (WMV file is 320x240)
Video Length:44 sec
Frames:1320
Rendering Time:unknown
Method:Distance Estimator
Audio:Modulated sine waves generated with Mathematica
File Size and Type:4.25 MB WMV

This is quite possibly the least interesting animation ever. It was just a simple test of a phase in development, so it just zooms straight in to the fixed point at (0,1). This could go on forever, but stops at 1e-43. The audio is probably the more interesting component of this file. It was generated in Mathematica by combining two modulated sine waves and an amplitude modulation to move it around from left to right. The main sound you hear is 300 Hz and 325 Hz with some modulation. The tones that fade in and out are 400 Hz and 120 Hz. I was surprised that my cheap computer speakers could not reproduce the 120 Hz tone (although I suppose I shouldn't have been too surprised) so I had to go get some slightly better ones to hear this properly.

Pan Test fractal video frame

HiPrecPanTest

Date Generated:1 Jul 07
Final Image Size:4.0 E-18
Resolution:320x240
Video Length:44 sec
Frames:1200
Rendering Time:unknown
Method:Standard
Audio:Cinescore
File Size and Type:4.0 MB WMV

This is a quick tour of one of the linear Julia sets in the main set's antenna. This animation sequence is part of the testing of the equations for simultaneous panning and zooming -- you can see a quick move to the right at about time index 0:10 in the video.

PanTest2 fractal test video frame

PanTest2

Date Generated:6 Jul 07
Final Image Size:1.8 E-12
Resolution:640x480
Video Length:1:02 min
Frames:1860
Rendering Time:unknown
Method:Standard
Audio:Cinescore
File Size and Type:6.4 MB WMV

This is a much more elaborate test of panning and zooming, with around 6 or 7 segments, including combined panning and zooming. There is a single combination move that is really clear at time index 0:44 or so.

HowNotToZoom fractal video frame

HowNotToZoom

Date Generated:9 Aug 07
Final Image Size:1 E-33
Resolution:320x240 (original uncompressed file is 640x480)
Video Length:1:06
Frames:995
Rendering Time:unknown
Method:Standard
Audio:None
File Size and Type:4.2 MB WMV (320x240 15 fps 500 kbps)

This is a demonstration of a problem I had in the pan/zoom equations early in development that is not evident in the previous couple of videos above. If the motion is not properly coordinated you can end up zooming in to something that is located off-center, without the proper visual perception of panning. This video really is panning since the first frame is centered at (0,0) and the final frame is near (-2,0), but the "focal point" of the zooming was not panned to the center of the frame, so it looks odd.

Bilinear
FIDemosEndFrameTN
Nearest Neighbor
FIDemosEndFrameTN

Frame Interpolation Demonstrations

Date Generated:15 Aug 07
Final Image Size:4 E-4
Resolution:640x480
Video Length:20 sec
Frames:600
Rendering Time:few minutes
Method:Standard with frame interpolation (both NN and BL)
Audio:None
Bilinear interpolation demoFIDemoBL.WMV (3.3 MB WMV 640x480 30fps 2Mbps)
Nearest-neighbor interpolation demoFIDemoNN.WMV (3.3 MB WMV 640x480 30fps 2Mbps)

These files demonstrate frame interpolation with two methods of pixel interpolation. Nearest-neighbor is a simple method that assigns the interpolated pixel the color of the pixel in the key frame that is physically closest to it. Bilinear interpolation interpolates color values between the four pixels at the corners of the box that contains the interpolated pixel. Both these methods are standard digital image processing techniques. NN is faster but less accurate; BL is slower but gives better fidelity.

The encoding quality in these videos is a bit higher than usual to minimize compression artifacts so that the effects of the interpolation process during calculation of the count values are as clear as possible. As a result, these files are a lot larger than you might expect for such short video segments.

Rank Order Test Demo

Rank Order Color Mapping Demo

Date Generated:19 Aug 07
Final Image Size:4 E-12
Resolution:320x240 (original uncompressed images are 640x480)
Video Length:40 sec
Frames:1200
Rendering Time:few minutes
Method:Standard
Audio:None
Rank Order Color Mapping DemoRankOrderTest.WMV (2.5 MB WMV 320x240 15fps 500Kbps)

This is one of the "adaptive" color mapping schemes, which try to uniformly spread the color palette across the image so that all colors are more-or-less equally represented. The method demonstrated in this video sorts count values into a rank list, then uses the position in the rank order list to index into the color table. This method is more robust against outliers in the count distribution than the other methods I have tried and so is better suited for use in animations. Most of the still images on this site were colored using a different method based on the distribution function of the count data, which works great for still images but causes unacceptable jitter in the color map as the top count values change from one frame to the next due to noisy pixels at the boundary of all the invisible mini-brots in every image.

Although rank-order mapping does work well, I find the constantly changing swirling color palette to be somewhat distracting, and I have not had much use for adaptive color maps in any serious animations so far. It's a cool effect but clearly has to be used in moderation. I almost always use a regular old linear map with a modulo function.