Current and Past Projects

Timothy B. Terriberry: 
 Home   Publications   Presentations   Projects   E-mail 

Research Projects

Video Compression

Data from a current motion compensation experiment

I am currently in the process of designing a next-generation video codec to replace Theora. See my presentation from FOMS 2007 for some of the highlights of the design and current status. Several papers are in the works, waiting on experimental data to be collected and evaluated. Progress at the moment is slow without dedicated funding.

Audio Compression

CELT spectrum vs. the original input

I am currently involved in the design and development of the CELT (Constrained-Energy Lapped Transform) codec, an extremely low-latency audio codec that scales all the way to CD quality. It has an order of magnitude smaller latency than MP3, and yet ranks higher on listening tests at the same bitrate.

Project Homepage

Medical Image Analysis

Continuous 3-D Medial Models

A dense sampling of a medial model of a healthy left caudate defined continuously using subdivision surfaces
Project Homepage

I developed a new, continuous 3-D medial shape model for biological objects. This model is based on Catmull-Clark subdivision surfaces and represents a shape using a continuous, analyticaly evaluatable medial axis. See the project homepage for more details.

Hypothesis Testing with Nonlinear Shape Models

A pictorial presentation of the algorithm's steps

This project sought to develop a method for comparing two populations of medially described shapes for statistically significant shape differences. Previous work with m-reps had been restricted to performing statistics on just some of the parameters of the shape model, and did not have a method of combining multiple parameter types into a single test nor of accounting for correlation among neighboring sites. We developed a new non-parametric test based on a multivariate framework developed by Fortunato Pesarin. This was the first test capable of using information in the spoke vectors of discrete m-reps, and of combining them with position and radius parameters into a single test. It is designed for high-dimensional spaces composed of direct products of many simpler metric spaces. The metrics on each component need not be commensurate, and no other tools on the space are required. The computational tractability of computing the Fréchet mean is greatly improved, however, by having the structure of a differentiable manifold, which admits a gradient descent algorithm in spaces where it is has no closed form.

Selected Publictions

Other Research Interests

Other research interests include computer vision, structure from motion, object tracking and recognition, optical character recognition, and general purpose computation on GPUs. However, most of this work is carried out for my employer, Argon ST, and as such is not currently publicly available.

Other Open Source Projects

The following list includes only open source projects which I lead or on which I am a lead developer. Minor contributions to other projects are omitted.

The Theora Video Codec

Thusnelda output with telemetry enabled
Project Homepage

A free, patent-unencumbered video codec. See also:

Maemo Development

Gjiten for Maemo

The main word dictionary for Gjiten
Project Homepage

In preparation for a trip to Japan, I ported the Gnome Japanese dictionary Gjiten to the Nokia N800 internet tablet.

Barcode Reader for Maemo

An example QR code

Project Homepage
ZBar Bar Code Reader Library

I wrote a QR Code decoder for this project. The goals were a robust detector, small code footprint, and no floating point operations. The result successfully decodes more codes than any other open source decoder I've tried, is the only one I know that can find multiple codes in a single image, and a simple stand-alone reader application compiles to less than 64K. The decoder has been incorporated into the general ZBar bar code reader library, and should be available in the next release.


A quick one-off application to provide the Nokia N800 with separate brightness level and screen blank settings depending on whether or not it is connected to AC power or running off battery.

For the N800 (OS2008/chinook) (see this thread on ITT):
For the N800 (OS2007/bora):
For the N770 (mistral) (see pupnik's page):
Source Code:

The daemon starts automatically upon installation and reboot. Configuration is automatic based on the current state, plugged in or on battery. Plug it in, change your settings, unplug it, change your settings, plug it back in, it goes back to whatever it was last time it was plugged in. It tracks brightness and blank time. And while plugged in will periodically ping to keep your net connection up.

You can add longer blank timeouts to the settings dialog by running the following commands from the shell:

gconftool-2 -t list --list-type=int -s \
 /system/osso/dsm/display/possible_display_dim_timeouts \
gconftool-2 -t list --list-type=int -s \
 /system/osso/dsm/display/possible_display_blank_timeouts \

The daemon also pings a remote host once a minute while on AC power (N800 version only), which helps ensure the network interface will continue to accept remote connections (e.g., via sshd) after idle periods. If you'd like to change the host that's being pinged, use gconf-editor or gconftool-2 to set /apps/acmonitor/ping_host. Set this to a blank entry to disable this feature.

Reports indicate that acmonitor does not work with OS2007 Hacker Edition. Apparently it sends a different set of dbus messages that make it appear to acmonitor that the adapter is always plugged in.

VASP Data Viewer

A VASP Data Viewer Screenshot
Project Homepage

This was completed as a class project for CS 4204 "Computer Graphics" while I was an undergraduate student in Computer Science at Virginia Tech.