Thursday, March 12, 2009

Flash Animation Player Fixed

Okay, apparently the original version I made only worked with large sets of images and on smaller sets it'd stutter and have problems. Sooo...I fixed...

animation_player.swf?v_spd=7&v_nbr=11&v_frm=jpg

Now, this version is ~slightly~ different, in that now the speed interval is controlled by a number between 1 and 12...it's not as precise as the original version, but I had to completely change the way it operated, relying now on frame level control where as the original was using setInterval and wound up tripping all over itself.

It should probably be noted that I've never had much luck with setInterval and I wonder if it's not a bug with ActionScript, as it doesn't seem to operate sequentially, or rather it'll trigger another interval before the first interval even has had a chance to finish running, which then leads to the program tripping all over itself. I have to tried to control it via the use of onLoad but that still doesn't seem to work very well.

Here's the original gif animation:
rockyfull.gif

Original size = 471k
JPG conversion = 158k

This new version is also slightly smaller, the original was 561 bytes, this new one is 494 bytes.

EDIT
----
One thing I need to add in, in addition to being able to use your own file names, is the ability to add in your own server domain destination, which would allow you to use the form on sites/servers that aren't your own, for example on Blogger.

8 comments:

Onideus said...

Hrmmm, there seems to be an alignment problem when using it within an embed tag, I'll try and get that sorted out.

Kirk Is said...

yeah, the alignment was what I was talking about, not the jerkiness of the animation. I'm usually pretty decent at finding as clean a loop as possible; in this case I don't think reversing frames would look right, since a pushup isn't symmetrical) though possibly further fiddling/cropping could get rid of the pan.

Mea culpa on the framerate; I forgot the Animation Shop measures in 100ths not millis.

Kirk Is said...

You know one interesting way of letting them indicate what the image URL and file name is would be to just give the example of the first one, ala
v_first=kirkjerk.com/temp/rocky/image_001.jpg

from that you should be able to automatically determine server, filename, 0 padding for numbers, and filetype. then all you'd need is final image # and speed.

Anonymous said...

Sup Matt how's Interpixel Cascade Fusion coming?

Kirk Is said...

Actually did anything ever happen with this?

Onideus said...

I haven't had any time to work on it actually. I've spent most of the last few weeks on this:
http://www.backwater-productions.net/_test_platform/Bullfrog/
Tip - turn off your volume...no seriously (wasn't my idea).

And my dad remarried recently and as such my family has now basically quadrupled in size. So I've had a number of social obligations keeping me busy, amongst other things.

I've also been getting a few minor donations to the Sprite Generator, which basically means it's time to update, so that's going to be bumped up to first priority. Most of the things I create are governed by the fan bases behind them and how much interest/pressure they're showing. Currently the Sprite Generator and my CB fanfic are getting the most support/interest so they're both at the top of my list.

Ultimately I'd say my greatest flaw is in not having enough time and having far too many ideas, projects, etc. It becomes somewhat of a bitch to decide what to make and what to pass up and I'm usually always spread really thin.

In the past I've tried relying on others to help me on some of my projects, but none of them were as thorough, precise and focused on quality, either as a result of their lack of technical knowledge or they just didn't care much.

Some things though, like the Sprite Generator, can only be constructed by me, as it requires a tremendous amount of memorization and intellect, mostly in splitting apart new items by color into different layers and then setting them up so that they'll all work with all the other possible item combinations. So basically the more parts I add into it the more complex it gets.

My other primary flaw is that I can't stop the flow of ideas. Like if I'm writing a story, I never experience writers block, and often start coming up with potential ideas so fast that I have to switch over to an outline form.

Truth be told the CB fanfic is actually finished...in outline form anyway, and has dozens of possible story lines, conclusions and the like, to the point where I'm actually considering turning it into a "choose your own adventure" type story.

Onideus said...

"Sup Matt how's Interpixel Cascade Fusion coming?"

I haven't actually worked on that project since...several years ago. The concept behind the codec is relatively simplistic in nature and is basically a kind of derivative of JPEG compression (although on a much more complex scale).

Unfortunately it requires a tremendous amount of computing power and as the initial prototype was done in PHP, well, it's not nearly as efficient as it could be (if I had done it in C++), which is actually the next step to take with the project. I don't know when I'll go back to it though, I've got dozens of other projects in the works.

And of course I'm not the only one working on such a codec, although mine works somewhat different than other projects (like MPEG-21 and the vast array of JPEG derivatives).

My codec primarily works by combining like pixels in a string, on both the intra-frame and inter-frame level, where as JPEG/MPEG uses a kind of block method in conjunction with quantization matrices. Mine produces much higher quality video for about the same level of compression, but again it requires a lot of processing power to do it. That and there are some bugs to work out:
http://www.backwater-productions.net/_images/_Scraps/Coding_-_ICF_Video_Codec_Snafu.png

With my codec you can control the level of compression by the percentage of difference between colors and primarily works off exploiting the limitations of the human eye as far as being able to discern color differences:
http://www.backwater-productions.net/_images/_PoE/U_R_Colorblind.png

In addition to that it also fuses different color strings (and like color strings) into a single "color" with what I call "split points". Basically color is represented by RGB, each being between 1 and 255. So if you had a color of 213, 152, 122 it would be fused together as 487, with simplistic "split points" at 40 percent and then 60 percent of the remaining, which is then simplified as 4 and 6. So essentially you just turned 9 bytes into 5 bytes. The deconstructed color isn't ~exactly~ as it was originally, in this case you wind up with 195, 175, 117 which creates the following difference:
http://www.backwater-productions.net/_images/_Scraps/Coding_-_Color_Fusion.png

The difference may look somewhat obvious at that size, but at the pixel level not so much:
http://www.backwater-productions.net/_images/_Scraps/Coding_-_Color_Fusion%20_Small.png

The form is a bit overly complex though in that it has to check that its fusions are producing semi-like colors and if not then sometimes a "half point" is needed, bumping it up to 6 bytes instead of 5. There are further complications for single and double digit color parts in which the total number of bytes needed to produce the color is already under 9 bytes. And then of course the fusion just keeps going throughout the entire image/video, the overall output being just a single number (a really long one) with a string of "split points" needed to deconstruct the fusion.

Anyway, it's pretty fucking complex to say the least bit.

Kirk Is said...

So you never did anything with this, huh?