Git Product home page Git Product logo

advanced-audio-encoder's Introduction

MULTIMEDIA SYSTEMS

made-with-matlab License: MIT forks stars issues-open issues-closed size

1. Advanced Audio Encoder

The work aims to implement an Advanced Audio Coding (AAC) encoder/decoder. Variations of the AAC are used by many international standards such as MPEG-2, MPEG-4, H.264 etc. The version presented in here is more like the 3GPP TS 26.403 specification where some processing steps are missing. An exception is the psychoacoustic model, which is a slightly simplified version of MPEG AAC. Despite the simplifications, this version leads to quite good results. AAC encoding and decoding belongs to the waveform compression category and attempts to represent the original signal in such a way that its decoded version sounds as similar as possible to the original signal. The psychoacoustic model that allows the introduction of distortions of the signal (noise due to quantization) which is below the audibility threshold is used as a fidelity criterion. For this reason the Psychoacoustic Model mechanism that guides the Quantizer mechanism plays a dominant role. To reduce the excess information, AAC basically uses the transformation coding approach implemented using the so-called Modified Discrete Cosine Transform (MDCT) at the Filterbank stage, while for entropy coding it uses the Huffman coding implemented at the homonymous stage. More specifically, during coding the original audio signal (for us stereo with sampling 48000 samples/sec) is divided into 50% overlapping sections (frames) of 2048 samples. Then each frame is encoded autonomously and therefore the finally encoded bitstream consists of the sequence of bits that correspond to the successive frames. To validate the functionality, AAC is applied to the song Licor De Calandraca.

2. Contents

Level 1

  • AACoder1.m
  • iAACoder1.m
  • demoAAC1.m
  • SSC.m
  • filterbank.m
  • iFilterbank.m

Level 2

  • AACoder2.m
  • iAACoder2.m
  • demoAAC2.m
  • TNS.m
  • iTNS.m
  • TableB219.mat

Level 3

  • AACoder3.m
  • iAACoder3.m
  • demoAAC3.m
  • psycho.m
  • AACquantizer.m
  • iAACquantizer.m
  • TableB219.mat
  • loadLUT.m
  • encodeHuff.m
  • decodeHuff.m
  • huffCodebooks.mat
  • huffCodebookSF.mat

Report

  • report.pdf

Notes

  • Note 1: For Level 2 and 3, the folder are included in code with with command: addpath.
  • Note 2: Scripts work only in MATLAB 2020b

Support

Reach out to me:

advanced-audio-encoder's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.