17 Frame Per Second TMV Encoder
17 Frame Per Second TMV Encoder
Something I've been working on recently. I did that really terrible VB6 encoder that I posted here years ago, but this new one is in C and is light years beyond it. I actually based it off Trixter's lecture this time.
The quality is really close to his original encoder, which was unfortunately never released.
I used the ffmpeg libs for source input, so it can accept practically any video file format and turn it into a TMV file. It can use up to 12 processing threads to speed things up on a multicore system. It's not that fast, I get about 5 FPS on my overclocked core i7-4930k but it does a pretty good quality encode. Two screenshots of it's encode of the Tron disc scene, and one of the Enterprise from the Star Trek TNG intro:
Hi. I'll go ahead and hi-jack this thread as this is on topic. Mike - nice work on the encoder - I wish I had your GUI and C skillset. Attached is a frame encoder for TMV files that needs BMP files as an input. It can convert to DMP files suitable for Jim's encoder. I have been laboring (for two years) trying to figure out how to optimize two CGA text frames using temporal color and character effects. I was successful in getting the right frames, but the result was somewhat disappointing to me, not by anybody's fault but my own. The playback pauses quite a bit at 60 frames per second and although the flicker effect is good, the pausing takes away from the illusion. In my desire to make lemonaid from lemons I realized that in my need for a really fast character matching algorithm (imagine 256*256 letter combinations and 16*16*16*16 color combos [I know you don't need to search all of them - now]) that could be repurpoosed to make standard TMV files. I also realized that I had a pretty rich feature set, so I spent the last few days of my vacation getting the converter release ready. There are many interactive options that you can observe their effects of in real time. I wrote this in Freebasic.
(Martin - would love to share all of the formula's with you if you'd like, your interface is way, way, way better.)
Controls:
1/2, 3/4, 5/6 Linearly controls the input RGB balance
D,F - Dither or Dither OFF
O,P - Contrast Multiply each RGB inputer by this value
K,L - Bright Subtract or add a value to each RGB input
Q - Matrix Adjust through many dither settings
G -Gamma Turn on or off Gamma correction
T,Y - Adjust Gamma correction value
N,M - alpha Value to Multiply By Bayer Matrix
U,I - beta Value to add/subtract after Bayer Matrix addition
H,J - This value is cool. H prefers characters with matching
total pixel/color counts. J prefers total block color
distance. [the "sharper" result is actually close in
8x8 block matching but not by matching block]
Screenshot of Encoder Running
Encoder
View attachment 8FLEXFAST.zip
TMV Videos:
Blurred Lines,
Greatest American Hero,
Ginger Lynn (NSFW),
Gorillaz Clint Eastwood,
Raiders of the Lost Ark
Gorillaz
Thanks,
Chris