Older Part II Project Suggestion(s)

Originator DJ Greaves

Very high-level modelling.

The first step of this project is to write a high-level interpreter for the abstract syntax tree of some concurrent C benchmarks (such as those from Splash-2 or new data structures for multicore versions of standard algorithms). The C code can also be run on an existing SystemC/TLM model of a multi-core processor system (as used in the ACS P35 System-On-Chip course) where a number of detailed statistics can be readily collected (such as counts of bus cycles, instructions executed, memory reads and writes, cache misses and power consumption). The second step of the project is to augment the high-level interpreter to collect statistics of a similar general nature, but without introducing a detailed system model.

Evaluation is by comparing the statistics captured by the two approach while sweeping the major system parameters, such as number of cores modelled or size of L2 cache.

The abstract syntax trees can be provided by DJ Greaves as an F# data structures (generated using gcc4cil), so the best language for implementation might be F# or C#, but Java is also a good possibility. Some knowledge of C/C++ is also needed, since the actual benchmarks are written in C and some tinkering with the SystemC model might be required, which is written in C++.

Guitar Amplifier Modelling

A bootstrap-style guitar preamp can potentially send energy up the guitar cable, altering the way the guitar strings vibrate. In addition, loud amplification produces sound waves that directly vibrate the guitar strings and the valves in a tube amplifier. In all cases, a closed-loop system is thereby constructed, and several loops may be active at once. This project is to first construct a lumped-element, discrete time simulation model of the guitar strings, the pre-amp and the loud soundwaves that captures the closed-loop situation. An extension to the project is to derive a mathematical model of the overall system that can be applied, in an open-loop manner, to a signal captured from a guitar that is not actively subject to these effects, yet which gives a similar overall result.

Evaluation criterion: to determine the feedback ratios that cause a noticeable effect (i.e. the output waveform or spectrogram is significantly different) and to consider whether these ratios are feasible in a real, physical system.

Old Project Suggestions (2009/10)

The following projects were suggested in the past.

CPU Optimisations as Rewrite Rules

Modern CPUs contain many semantic-preserving transformations compared with earlier designs: pipelining, caching branch prediction, score-boarding, out-of-order execution and many others.

This project is to first synthesise a working CPU (that implements an instruction set simulator for real machine code) from a declarative form (DJG has both PIC and PU17 processor models and that could be used to start from), and then to augment the synthesis procedure with additional declarative or rewrite rules. The additional rules must be provably or obviously correct semantic transformations that make the resulting CPU go faster.

Fabric Texture Classification

A retail outlet wishes to connect a camera or scanner system to its till to verify that the fabric being handled at the point of sale is indeed the fabric being rung up by the operator. The system must have maximum accuracy in cases where two fabrics differ greatly in price.

For the project, an annotated database of 500 images (200x200 pixels) is available containing 10 images of 50 different fabrics, all with roughly the same lighting and scale, but varying in orientation and offset. Certain fabrics have large scale patterns that do not fit in the image window, and hence suffer from missing a further major degree of freedom. A holdout set has another 2 images of each fabric.

This project involves creating a system that can perform the texture recognition and database lookup within a few seconds, so that customers are not delayed unduly.

Midi File Melody Identification

A standard Midi file commonly contains 15 music tracks and one of these is generally the melody. Others are bass, percussion and so on. In this project, a system that correctly identifies which track contains the main melody is developed. An extension is to extract and frame the main phrase or phrases of the melody and harmony (if any).

Digital Music Mastering

A number of techniques exist to maximise the perceived volume from a fixed 16 bits of audio precision when a number of higher-precision tracks, known as 'separations' are mixed down to form the final stereo mix. These involve multi-band compression, compression, limiting and noise manipulation based on psycho-acoustic models. Many techniques attempt to minimise the peak-to-average ratio (PAR) because when peaks are smaller, the average can be larger, within the avaliable range of values (-32768 to +32767). However, when applied to a stereo pair, the techniques must be constrained to treat each channel more-or-less equally, so as to avoid distortion of the intended stereo image.

The aim of this project is to take some unmixed tracks in 24 bit wav format, together with basic pan and volume profiles, and to produce a stereo master ready for copying to CD. Another input would be a style selection that applies different compression profiles to different styles of music.

The project success can be analysed in terms of how many dB's of artificial headroom are created. The project should start with some unmixed files, provided by DJ Greaves, and do a basic mix, and then be enhanced to study the benefits of the different approaches.

  • Notes on digital CD mastering techniques.

    IPC Power Estimation

    Using our existing SystemC implementation of the OpenRISC processor with power measurement from TLM POWER3 library, one can explore the performance of various IPC (inter-process communication) primitives on systems with and without cache consistency. The SRG has just released an IPC benchmark suite that might serve. Exploring the power consumption of the Barrelfish primtivies would also be sensible. Or indeed reproducing the results found in a recent ASPOLOS paper would be good.

    Type System Completeness and Correctness Checker

    The project is to develop a program much like Alloy (download from Daniel Jackson's site at MIT) that will work specifically with type systems of experimental languages that will produce counter examples or illustrative examples of code fragments corresponding to type systems. The main difference from Alloy would be the concrete syntax used for counter exampes, which would not be OO-like class diagrams, but type strings such as Dictionary<string, alpha>

    Frequency Domain Audio Editor or AutoTuner.

    Audio processing programs such as Celemony work in the frequency domain.

    Recently, programs that work this way have been used to tune up out-of-tune singing in real time or offline. Atares Autotune is the leading product.

    Rather than just pitch correction, noise or sound removal is also possible. Melodyne implements frequency domain feature detection combined with an editor GUI.

    Click removal and motor noise removal are related projects.

    If you achieved a first or 2-I in part Ib and understand fourier transforms then D Greaves would be interested in supervising a project in this area.

    Motor Noise Removal

    Video recorders with built-in microphones can often pick up motor noise. However, repetitive noise can often be cancelled using adaptive equalisers and such techniques can usefully be applied to the sound track of a video recording. Doing it offline allows the algorithms to scan forward and backwards in time or use transforms to alternate domains.

    Motor noise may gradually change in pitch as a recording proceeds, and may be subject to low-frequency wowing. An adaptive equaliser that specifically models and utilises these features would be interesting.

    DJG can provide some sample recordings as WAV files, including raw motor noise for practice runs. The project would evaluate various algorithms on real and synthetic motor noises in terms of StoN improvement.

    If you achieved a first or 2-I in part Ib and understand fourier transforms then D Greaves would be interested in supervising a project in this area.