[John W. Linville] wrote a digital video player for the Tandy Color Computer (aka TRS-80). The decades-old hardware performs quite well considering the limited resource he had to work with. This is the second iteration of his player, and can be seen after the break playing a promo video for CoCoFEST 2011 where he’ll show it off in person.
In the most recent thread post (at the time of writing) [John] shares the methods used to get this running. FFMPEG is used on a modern computer to process the source video by separating the audio into an 8-bit 11040Hz file, and it generates several PPM files with the proper video frame rate. ImageMagick takes it from there to convert the PPM files to a bitmap format. It also processes each frame for differential changes, reducing the size to fall within the available bandwidth. They are then interleaved with the audio to produce the final format. Video is 128×192 with rectangular pixels. [John’s] already used it to watch such classics as War Games on the antiquated hardware.
[youtube=http://www.youtube.com/watch?v=42jBBrqn70w&w=470]
Actually the Tandy CoCo and TRS-80 are completely different. The TRS-80 is based on the Z80 processor, the CoCo on the Motorola 6809.
Tandy DID confuse the issue by naming CoCo the TRS-80 Color Compter, other than the name collision they are entirely different.
The CPU was a 6809, so there was still an 80 in the machine. Most of the CPUs then had 80s in them…
Wow – finally something to top 8088 Corruption
http://www.oldskool.org/pc/8088_Corruption
I’m not familiar enough with the Coco – I assume there’s some sort of winchester drive storing the data?
This just goes to further illustrate the fact that the raw processing capacity we have even in “ancient” hardware is barely even being used in modern hardware. In other words, we could have done this then but didn’t. But now we can.
So taking that same concept and applying it to modern day, just goes to show that modern AI as envisioned 50 years ago is still waiting for is to figure out how to make it work – but in theory we could be using our hardware so much better IF we only had better software to run on said hardware.
Whoops. Typo. “is” should have been “us”.
How is video processing similar to AI?
We’re buried under layers and layers of abstraction that impede our ability to use the raw power of these amazing machines, goes without saying. Or as a professor explained to me when teaching us Moore’s law: Faster hardware lets our bloated software suck even faster.
(off topic) – but is it me, or does this guy sound like Pat Goss from “Goss’s Garage”? lol
To answer a question from Josh, the data is stored on a Compact Flash card being read from a Cloud9 (http://www.cloud9tech.com) SuperIDE IDE interface. John knows he ‘made the cut’ here at Hackaday and may drop in to further explain how this all works…
The CoCo scene still somewhat flourishes; Cloud9 also sells a SCSI adapter and numerous other cool devices and software. Roger at coco3.com sells a MicroSD Drive Pak and wireless paks for the CoCo to utilize for virtual disk storage.
The CoCo is only displaying 128×192, in 16 colors. It’s not having to handle a complex decompression algorithm or storage, because a PC is connected and doing that for it. And it’s probably running near max CPU.
My PC is currently displaying a movie at 1024×768, in 24-bit color (192 times more raw pixel data), handling all the decompression, post-processing, and storage. And it’s using barely 1% of its CPU.
Saying that what we can do now could have been done on a CoCo, is not an example of abstraction crippling performance. It’s only an example of ignorance.
There is no PC conected to the CoCo. But a PC was used to create the video/audio data the CoCo 3 is playing.
The Video/Audio was transcoded on the PC and the data was copyed to SD memory card. The CoCo is reading the SD card and playing the Video.
Witout the large size of SD card for the data source, the video would only be a few seconds. (The CoCo 3 has a limited amount of memory by today’s standards.)
While 20+ year old computer is playing the video, it still takes bit more modern hardware to make it happen.
Still a good job of 6809 coding on his version two of the CoCo video player. (With a more watchable image than the order version.)
reminds me of the intro to GTA vice city XD
There is no PC connected to the CoCo when playing the videos. As I explained earlier, the video data is being read from an IDE adapter and Compact Flash plugged into the cartridge port of the CoCo. What you see is 100% CoCo.
The CoCo is connected to a custom made RGB -> VGA adapter (which also works with other classic computers such as the Atari ST line) which is why the display is on a modern LCD and not a TV or old RGB monitor.
Getting the CoCo to play a video would have been very difficult to pull off 20 years ago as most of the tools to create the video were not available. Also, the PC’s of the time would have taken days if not weeks to convert the video data into the format used by the CoCo.
Keep in mind that Video for Windows has been with us for roughly 20 years already. So clearly the basic problems of video storage and video processing were already solved within the CoCo3 era, even if they weren’t as available as a commodity like they are today. :-)
As for modern PCs playing “192 times more raw pixel data” while using “1% of its CPU”, you should keep in mind that the modern PC has multiple cores running 2000x the clock speed and 8x the width of the data bus. Also, the modern PC uses DMA transfers from the disk and special instructions (or even hardware offload) for the video decompression. With all that, one might reasonably ask why the modern PC is wasting so many resources on video playback… :-)
Of course, I should not need to explain to any regular Hack a Day reader that this is not meant to be a practical project. I did it for my own exercise! And the hack value, of course…
All this does is make me re-wish for a CoCo 3 Laptop (with Os9 or Linux)
Something similar is Nuvie 1.1 for the C64.
As far as i understand you need a REU and some special encoded Video and there is no Sound but you can use Sid Music.
Have a look at this Video http://www.youtube.com/watch?v=IXLv7UosQXs
I agree with CutThroughStuffGuy. We never get around to fully exploring the capabilities of 8-bit personal computers (although we got close – the Voyager spacecraft was basically a Commodore 64). Newer better models always came out faster than we could reach their limits.
Most of the microcontrollers out today, in particular the Arduino and variations, are roughly the same as those old TRS80s and Vic20s and TI99-4/As, only hackable and at credit card size. And it is only now, when we have a much larger hacker community able to share ideas over spaces like Hackaday, that we are finally starting to find out what low-power hardware can actually do.
I blog quite often and I truly appreciate your content. This great article
has truly peaked my interest. I am going to bookmark your site and keep
checking for new information about once per week. I opted in for your RSS feed as well.