Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Introduction

The main focus of this project is to explore and implement a lossy encoder and decoder for static images and videos. Building upon the existing foundation, optimizations have been introduced, including fractional-sample-accurate motion compensation (MCP) and intra-coding for both inter- and intra-prediction.

DCT-based still image coding

  • In the process of encoding still images, the main techniques applied include Discrete Cosine Transform (DCT), quantization, zigzag scanning, run-level coding, and Huffman coding image

Hybrid video coder (with embedded decoder)

  • In the process of encoding static images, the main techniques applied include Discrete Cosine Transform (DCT), quantization, zigzag scanning, run-level coding, and Huffman coding image image

Fractional-sample-accurate MCP and intra Coding for inter- and intra-prediction

Here we want to use fractional-pixel (e.g half-pixel) instead of full pixel for higher accuracy. We use linear interpolation and assign the mean of the four surrounding points to the interpolation point. In intra coding we encode the residual difference between predicted and actual block samples from different direction.

Intra Coding

  • Based on prediction from previously decoded spatially neighboring samples.
  • Different location of blocks have different prediction method
  • Calculate SAD, the winning mode is the one with the smallest error
  • image

Half-sample-accurate MCP

  • Use the neighboring 6 pixels to predict the value of the center pixel
  • e.g. $b = \frac{E-5F+20G+20H-5I+J}{32}$
  • image

Result

image picture

Manual

  • Please open and run main.m until it finishes running, It will take about 20 minutes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages