Multimedia Data Compression

This is a project to implement some Lossless Data Compression Algorithms including Huffman Coding, Adaptive Huffman Coding, Lempel-Ziv Coding and Run-length Coding.

  • Programming Language: C
  • Programming Environment: UNIXT, using Emacs to write code, GCC to compile
  • Download Project Report
  • Download Source Code

    Video Game Application

    This is a project to implement a simple Video Game. As shown in the screen shots below, the program can take a raw video file, play the video, implement several user interaction.

    play the video & split video in tiles

    randomize the tiles & use mouse to solve the puzzle

  • Programming Language: C++
  • Programming Environment: Microsoft Visual Studio 2005
  • Download Source Code
  • Note: The program can only take video files that satisfy the following condition: Length 10sec; Width 360 pixels; Heights 270 pixels; Frame rate 24 frames/sec. For detail information, please refer to readme.txt

    Test of Sound Reverberation Time

    This is a project to test the Reverberation Time(T60) of sound. In order to do that, my teammates and I have process the audio signal using different technique.

  • Recording Software: GoldWave
  • Pecording Equipments: AKG D3800M & Acer Laptop
  • Processing Software: Audacity & MATLAB
  • Download Presentation

    JPEG Compression and Delivery Mode Implementation

    This is a project to implement JPEG Compression and three different Delivery Mode. The program can take any 352x288 rgb image file, implement JPEG compression on it, and display the compressed image according to three Delivery Mode: Baseline Delivery, Progressive Delivery using spectral selection or Progressive Delivery using successive bit approximation. These three delivery modes are very useful in practical transmition systems. It allows people to transmite data in desired order depending on different bandwidth limitation.

    Baseline Delivery. Set latency to 20 milliseconds to simulate practical transmition systems

    Progressive Delivery using spectral selectrion. Set latency to 20 milliseconds to simulate practical transmition systems

    Progressive Delivery using successive bit approximation. Set latency to 10 milliseconds to simulate practical transmition systems

  • Programming Language: C++
  • Programming Environment: Microsoft Visual Studio 2005
  • Download Source Code
  • Download Sample Image
  • Usage: use MS-DOS to execute the program. it will take 4 parameters as MyProgram InputImage QuantizationLevel DeliveryMode Latency. For example, Image.exe image1.rgb 2 1 20

    Other Data Compression Techniques

    Implementation of QM coder, Lloyd-Max Scalar Quantizer, Lloyd-Max Vector Quantizer and Tree Structured Vector Quantizer using C.

  • Programming Language: C
  • Programming Environment: UNIX, using Emacs to write code, GCC to compile
  • Download Project Report

    3D Computer Graphic Compression

    Term Paper

  • Download The Paper

    Room Equalization for Audio Signals

  • Download Presentation

    JPEG & MPEG

    Implementation of JPEG and MPEG, including some post-processing techniques, such as JPEG de-blocking, rate control of JPEG.

  • Download Project Report
  • Source Code Available Upon Request

    Research on Audio Mixing Technology in Video Conference

  • Download Presentation
  • Paper Available Upon Request

    Bluescreen Techniques, Image Mirroring, Image Enhancement & Noise Removal

    Bluescreen Techniques and Image Mirroring

               

    Original Foreground Image         Background Image         Mirroring and Stitching                 Final Image

    Image Enhancement: I used two Image Enhancement Techniques, Full Range Linear Scaling and Histogram Equalization. The result of Histogram Equalization is shown below. For more results, please refer to the Report.

    Noise Removal: I used three noise removal techniques, Linear Noise Cleaning Method, Outlier Removal and Median Filtering. The result of Median Filtering is shown below. For more results, please refer to the Report.

               

    Original Image                                                     Enhanced Image                                                     Original Image                                                     Noise Removed

  • Programming Language: C
  • Programming Environment: UNIX, using Emacs to write code, GCC to compile
  • Download Project Report
  • Source Code Available Upon Request

    Image Segmentation

    For this project, I used K Means Clustering Algorighm to do Image Segmentation. First, I used OpenCV library function cvKmeans2() to implement the clustering algorithm on RGB-based images. Furthermore, I modified the function source code in OpenCV and made the function available for HSV-based images as well. Results are shown below.

               

    Original Images

               

    RGB-Based Image Segmentation using K-Means Clustering Algorithm

               

    HSV-Based Image Segmentation using K-Means Clustering Algorithm

  • Programming Language: C++ with OpenCV
  • Programming Environment: Microsoft Visual Studio 2005
  • Download Project Report
  • Source Code Available Upon Request

    Edge Detection

    Used 1st-Order Gradient Method and 2nd-Order Derivative Method to do edge detection. Also implemented some pre-processing and post-processing techniques, including Image Enhancement, Noise Removal, Morphological Processing.

       

    Original Images                                                                 Edges Detected

    Morphological Processing

    Implemented Shrinking, Thinning, and Skeletonizing Process

               

    Original Images                                                         Shrinking                                                         Thinning                                                         Skeletonizing

    Digital Halftoning

    Converting a gray-level image into a binary image. Used four different Dithering Techniques.

           

    Original Images                                                             Dithering Matrix                                                             Floy-Steinberg's Error Diffusion Method

  • Programming Language: C++
  • Programming Environment: Microsoft Visual Studio 2005
  • Download Project Report
  • Source Code Available Upon Request

    Line Finder

    For any input image, use Canny Edge Detector to fine all the edge points. Use Hough Transform to find all the main lines on an image.

       

       

    Original Images                                                                 Lines Detected

  • Programming Language: C++ with OpenCV
  • Programming Environment: Microsoft Visual Studio 2005
  • Source Code Available Upon Request

    Coming Up

    Currently, I'm working on projects which includes Geometric Modification, Texture Analysis and Segmentation, Optical Character Recognition.

    The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees