TV4X Scaling Filter

Welcome to the new home of my TV4X Scaling Filter! TV4X is a scaling filter, which emulates the look of old CRT TV's. You can use one of the existing pixel layouts, or create your own. Currently, the prototyping framework is written in Python, and uses the PNG module for loading/saving images. Feel free to play around, tweak, and hack. The current prototyping framework uses 4x4 matrices to generate the base pixel layout, and a second matrix for the RGB effect. Essentially, each cell in the 4x4 matrix represents an output pixel, and the input pixel is multiplied by the value of each slot to generate the 4x4 output pixels. On top of this, there are blur, noise, brightness, and contrast filters, as well as scanline generation (which uses slope/intercept).

The biggest issue is that all of this stuff takes a lot of power to compute. It takes several seconds to process a single image on my 2.66 Ghz Core i7. The C version of this code precomputes a lot of this stuff, so it can run at 60fps, but it's a lot more complicated to prototype with.

While this prototyping framework generates pretty damn good looking images (just see below :), it does have several issues:

Input images are expected to be 240p, but the resolution isn't checked so you could process a 800x600 image if you wanted to (but the output image would be 3200x2400). Below are some sample images, that have been processed using TV4X. Click on them to view a larger version.

Demo Image Demo Image Demo Image Demo Image Demo Image Demo Image

Source Code/Download

Source code for the prototyping framework is provided in the following zip file. It should run on Linux/Unix and Mac OSX. It requires a somewhat recent version of Python (2.6 or 2.7 should be fine), and the PNG module for Python.

TV4X Prototype v0.0.16a

TV4X C Source on GitHub

©2011 Cameron Eure. All rights reserved.