Showing posts with label compression. Show all posts
Showing posts with label compression. Show all posts

Saturday, February 9, 2013

Audio Compression

http://en.wikipedia.org/wiki/Audio_bit_depth
http://www-cs-faculty.stanford.edu/~eroberts/courses/soco/projects/data-compression/lossy/mp3/index.htm
http://blog.bjrn.se/2008/10/lets-build-mp3-decoder.html
FAQ: http://mpeg.chiariglione.org/faq/mp4-aud/mp4-aud.html

Video Compression

http://www.vcodex.com/h264.html
 
Code for generating P-frame: 
http://www.codeforge.com/read/114760/pframe.c__html

Smallest encoder code:
http://www.cardinalpeak.com/blog/?p=488
http://www.cardinalpeak.com/blog/?p=878


CAVLC is supported in all H.264 profiles, unlike CABAC which is not supported in Baseline and Extended profiles.

Multi-pass encoding and single-pass encoding: VBR is created using the so-called single-pass encoding or multi-pass encoding. In the first pass of two-pass encoding, the input data are being analyzed and the result is stored in a log file. In the second pass, the collected data from the first pass are used to achieve the best encoding quality. In a video encoding, two-pass encoding is usually controlled by the average bitrate setting or by the bitrate range setting (minimal and maximal allowed bitrate) or by the target video file size setting.

http://processors.wiki.ti.com/index.php/Extracting_MPEG-4_Elementary_Stream_from_MP4_Container 

To extract the h264 stream:
$ mplayer file.mkv -dumpvideo
$ ffmpeg -i file.mkv -vcodec copy out.h264
$ ffmpeg -i file.mp4 -vcodec copy -vbsf h264_mp4toannexb out.h264

To play yuv under linux:
http://gettinginsidelinux.blogspot.in/2009/05/play-yuv-files-under-linux.html 


Sample Files:
http://download.openbricks.org/sample/
http://samples.mplayerhq.hu/
http://samples.ffmpeg.org/Divx4-bugs/

Image Compression

Arithmetic coding: http://www.binaryessence.com/dct/en000121.htm
Huffman coding: http://www.ie.u-ryukyu.ac.jp/~wada/design03/spec_e.html

JPEG:

http://www.pcs-ip.eu/index.php/main/edu/1
http://www.ece.ucdavis.edu/cerl/ReliableJPEG/Cung/jpeg.html

Jpeg Code in Java: 
http://www.java2s.com/Code/Java/2D-Graphics-GUI/JPEG.htm

Simulator:

http://www.cs.sfu.ca/CourseCentral/365/li/interactive-jpeg/Ijpeg.html
http://www.site.uottawa.ca/~elsaddik/abedweb/applets/lessons/jpeg/Basics/basics.html


Function Grapher: http://www.mathsisfun.com/data/function-grapher.php


JPEG2000:
Book: Image Compression Fundamentals, Standards and Practice
http://wavelets.pybytes.com/family/haar/
http://www.cs.washington.edu/education/courses/csep521/99sp/lectures/
http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/compress.html
http://www.ti1.tu-harburg.de/Lehre/software/csforum/joocs/buildingblocks.htm
http://en.wikipedia.org/wiki/Quantization_%28signal_processing%29
http://faculty.gvsu.edu/aboufade/web/wavelets/student_work/EF/how-works.html
http://www.jpeg.org/.demo/FAQJpeg2k/coding-and-compression.htm
http://research.microsoft.com/en-us/um/people/jinl/paper_2002/msri_jpeg.htm


JPEG 2000 employs a dead-zone(small input values mapped to zero) uniform scalar quantizer:
JPEG employs uniform scalar quantization.
In the linear quantization, the step size(Qstep) is fixed and uniform means same time interval among samples.