Wednesday, January 23, 2013

ICA_PCA_SCILAB_COV_PDF


http://www.cs.helsinki.fi/u/ahyvarin/papers/NN00new.pdf
http://www.cs.helsinki.fi/u/ahyvarin/whatisica.shtml



http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb/IJCNN99_tutorial3.html
http://www.cis.hut.fi/projects/ica/cocktail/cocktail_en.cgi
http://www.cis.hut.fi/projects/ica/fastica/code/dlcode.shtml
http://www.cis.hut.fi/projects/dss/package/download_package.shtml
http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb/node37.html





http://research.ics.aalto.fi/ica/cocktail/cocktail_en.cgi
http://research.ics.aalto.fi/ica/icademo/



Papers
http://www.hiit.fi/u/ahonkela/


researcher
http://users.ics.aalto.fi/oja/
http://www.cs.helsinki.fi/u/ahyvarin/





SCIlab in communication

http://scilab.in/files/textbooks/ProfSenthikumar/DC.pdf
http://atrilla.net/data/files/scitut.pdf
http://www.infoclearinghouse.com/files/scilab/scilab15.pdf
http://turing.une.edu.au/~amth142/Lectures/Lecture_13.pdf
http://www.igpm.rwth-aachen.de/jarausch/NA_III/SciLab/introdiscreteprobas_v1.2.pdf


http://claymore.engineer.gvsu.edu/~jackh/books/analysis/pdf/analysis0_2.pdf

Friday, January 18, 2013

parsing the header of avi file





http://www.mikekohn.net/file_formats/readavi.php
http://www.mikekohn.net/file_formats/libkohn_avi.php

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/4a284338-4809-4cdd-8cbd-50b4f440fdde/
http://code.google.com/p/webrtc/issues/detail?id=671

http://msdn.microsoft.com/en-us/library/windows/desktop/dd318189(v=vs.85).aspx
http://sandbox.dfrws.org/2007/UNO/executables_and_source/aviparse.c
http://www.df.lth.se/~pi/endian.html



























http://www.wischik.com/lu/programmer/avi_utils.html

http://www.codeproject.com/Articles/472299/Writing-DirectShow-Demultiplexors-in-Csharp-Part-2

Thursday, January 17, 2013

DSP job, Digital image processing, Song, VBR

http://www.dr-lex.be/info-stuff/mediaformats.html
http://www.ida.liu.se/conferences/CCSSE/CCSSE01/latex.html
http://www.jmcgowan.com/avicodecs.html
http://javiergrade9.blogspot.in/


DSP job

http://www.dsprelated.com/employers-9/India/all.php
http://www.dsprelated.com/employers.php?country=India



DIP

http://www.ee.hacettepe.edu.tr/~toker/ELE774/
http://dsp.rice.edu/courses/elec539/syllabus539_99.html
http://engr.case.edu/merat_francis/eecs490f04/home.html
http://www.ee.columbia.edu/~sfchang/course/dip/
http://www.cs.nmt.edu/~ip/lectures.html
http://homepages.cae.wisc.edu/~ece533/notes/
http://www.ee.hacettepe.edu.tr/~toker/ELE774/



Song
http://www.youtube.com/watch?v=QtA9UAxWfW0&list=UUcCudm_jKE9NIWm14uwlA2w



http://www.gatsby.ucl.ac.uk/~turner/CV/TurnerCV.pdf

VBR
http://www.speex.org/docs/manual/speex-manual/node4.html
http://msdn.microsoft.com/en-us/library/windows/desktop/ff819095(v=vs.85).aspx
http://en.wikipedia.org/wiki/Variable_bitrate
http://knowledge.kaltura.com/best-practices-multi-device-transcoding
https://discussions.apple.com/thread/4548996?start=0&tstart=0
http://www3.telus.net/pfrank/PFrank_MediaMetaData_Plugin.py
http://en.wikipedia.org/wiki/Speex
http://forums.vso-software.fr/vbr-sound-in-avi-t14722.html
http://www.twolame.org/doc/vbr.html
http://www.fixya.com/support/r4096773-convert_ans_avi_mp3_vbr_cbr_virtualdub
http://nickyguides.digital-digest.com/quality.htm
http://club.myce.com/f32/vbr-audio-cbr-101161/
http://forum.doom9.org/archive/index.php/t-97849.html
http://theharwoodfamily.com/TrevsExtras/PALtoNTSC/WideScreen.htm
http://www.podcastfaq.com/creating-podcast/video/h-264-mp4-m4v-tips/
http://vimeo.com/help/compression

http://forums.vso-software.fr/vbr-sound-in-avi-t14722.html


What is the difference between CBR and VBR encoding?

Constant bit rate (CBR) encoding persists the set data rate to your setting over the whole video clip. Use CBR only if your clip contains a similar motion level across the entire duration.  CBR is most commonly used for streaming video content using the Flash Media Server (rtmp)
 
Variable bit rate (VBR) encoding adjusts the data rate down and to the upper limit you set, based on the data required by the compressor. VBR takes longer to encode but produces the most favorable results.  VBR is most commonly used for http delivery if video content (http progressive)

CBR or VBR - What's the difference?

Jan 24, 2006 6:46 AM

CBR is Constant Bit Rate, VBR is Variable Bit Rate. In a CBR MPEG stream the encoder uses the same amount of bits for every second of video. So if you set it to CBR with a bit rate of 5Mb/s all of the video will be encoded using 5 megabits per second. For some sections this will be enough, other sections could have been better with more bits per second (because they are more difficult to compress - e.g. lots of motion), while others could have used less bits and still look good (easy to compress - e.g. a shot from a tripod with almost no movement in the subject matter).

With a VBR encoding at 5Mb/s, the 5Mb/s would be the average bit rate. You would also set a maximum (and a minimum) bit rate. For the hard to encode sections the encoder will use more than 5Mb/s, for the easy material it will use less. But as the average is 5Mb/s, the resulting file will be the same size as the CBR one - i.e. it will take up the same amount of space on the DVD.

The advantage of VBR is that it uses the available space more efficiently. As it can use more bits per second for the difficult stuff there will be less artifacts in the MPEG-2 video.

Set top player compatibility should be the same for CBR and VBR. If you want to maximize compatibility for writable DVDs it may help to keep the total audio plus video bit rate at or below a maximum of 7Mb/s.

As many set top players have at least some problems reading DVD±R discs they will encounter read errors from time to time. If the read error exceeds the error correction the player will have to reread the information. While the player is reading again, the video will keep playing from the decoder's buffer. But as the size of this buffer is limited, it will be empty at some point. The higher the bit rate, the sooner the buffer will run dry. When that happens playback will stutter, stall or fail completely.

By using a moderate bit rate, you are giving the player more of a chance to recover from read errors. 7Mb/s isn't a magical figure, it is just a general recommendation - weighing image quality against compatibility.

If you know that the player used has no problems with writable DVDs you can ignore this advice. The same is true if your end product is going to be a pressed/replicated DVD.

Wednesday, January 16, 2013

SAMPLE REFERENCES, IEEE FORMAT


REFERENCES, IEEE FORMAT

http://www.ijssst.info/info/IEEE-Citation-StyleGuide.pdf
http://www.tomzap.com/notes/TechCommunicationsEE333T/IEEE_ReferenceExamples.pdf






Section numbering

Numbering of the sections is performed automatically by LaTeX, so don't bother adding them explicitly, just insert the heading you want between the curly braces. Parts get roman numerals (Part I, Part II, etc.); chapters and sections get decimal numbering like this document, and appendices (which are just a special case of chapters, and share the same structure) are lettered (A, B, C, etc.).
You can change the depth to which section numbering occurs, so you can turn it off selectively. By default it is set to 2. If you only want parts, chapters, and sections numbered, not subsections or subsubsections etc., you can change the value of the secnumdepth counter using the \setcounter command, giving the depth level from the previous table. For example, if you want to change it to "1":
\setcounter{secnumdepth}{1}
A related counter is tocdepth, which specifies what depth to take the Table of Contents to. It can be reset in exactly the same way as secnumdepth. For example:
\setcounter{tocdepth}{3}
To get an unnumbered section heading which does not go into the Table of Contents, follow the command name with an asterisk before the opening curly brace:
\subsection*{Introduction}
All the divisional commands from \part* to \subparagraph* have this "starred" version which can be used on special occasions for an unnumbered heading when the setting of secnumdepth would normally mean it would be numbered.
If you want the unnumbered section to be in the table of contents anyway, use the \addcontentsline command like this:
\section*{Introduction}
\addcontentsline{toc}{section}{Introduction
}
Note that if you use PDF bookmarks you will need to add a phantom section so that bookmark will lead to the correct place in the document. The \phantomsection command is defined in the hyperref package, and is implemented normally as follows:
\phantomsection
\addcontentsline{toc}{section}{Introduction}
\section*{Introduction
}
For chapters you will also need to clear the page (this will also correct page numbering in the ToC):
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{unsrt}
\bibliography{my_bib_file
}
The value where the section numbering starts from can be set with the following command:
\setcounter{section}{4}
The next section after this command will now be numbered 5.
For more details on counters, see the dedicated chapter.

[edit]Section number style

See Counters.

[edit]Ordinary paragraphs

Paragraphs of text come after section headings. Simply type the text and leave a blank line between paragraphs. The blank line means "start a new paragraph here": it does not mean you get a blank line in the typeset output. For formatting paragraph indents and spacing between paragraphs, refer to the Paragraph Formatting section.

[edit]Appendices

The separate numbering of appendices is also supported by LaTeX. The \appendix macro can be used to indicate that following sections or chapters are to be numbered as appendices.
In the report or book classes this gives:
\appendix
\chapter{First Appendix}
For the article class use:
\appendix
\section{First Appendix}
Only use the \appendix macro once for all appendices.

[edit]Table of contents

All auto-numbered headings get entered in the Table of Contents (ToC) automatically. You don't have to print a ToC, but if you want to, just add the command \tableofcontents at the point where you want it printed (usually after the Abstract or Summary).
Entries for the ToC are recorded each time you process your document, and reproduced the next time you process it, so you need to re-run LaTeX one extra time to ensure that all ToC pagenumber references are correctly calculated. We've already seen how to use the optional argument to the sectioning commands to add text to the ToC which is slightly different from the one printed in the body of the document. It is also possible to add extra lines to the ToC, to force extra or unnumbered section headings to be included.
The commands \listoffigures and \listoftables work in exactly the same way as \tableofcontents to automatically list all your tables and figures. If you use them, they normally go after the \tableofcontentscommand. The \tableofcontents command normally shows only numbered section headings, and only down to the level defined by the tocdepth counter, but you can add extra entries with the \addcontentsline command. For example if you use an unnumbered section heading command to start a preliminary piece of text like a Foreword or Preface, you can write:
\subsection*{Preface}
\addcontentsline{toc}{subsection}{Preface
}
This will format an unnumbered ToC entry for "Preface" in the "subsection" style. You can use the same mechanism to add lines to the List of Figures or List of Tables by substituting lof or lot for toc. If the hyperref package is used and the link does not point to the correct chapter, the command \phantomsection in combination with \clearpage or \cleardoublepage can be used (see also Labels and Cross-referencing):
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
To change the title of the TOC, you have to paste this command \renewcommand{\contentsname}{<New table of contents title>} in your document preamble. The List of Figures (LoF) and List of Tables (LoT) names can be changed by replacing the \contentsname with \listfigurename for LoF and \listtablename for LoT.

[edit]Depth

The default ToC will list headings of level 3 and above. To change how deep the table of contents displays automatically the following command can be used in the preamble:
\setcounter{tocdepth}{4}
This will make the table of contents include everything down to paragraphs. The levels are defined above on this page. Note that this solution does not permit changing the depth dynamically.
You can change the depth of specific section type, which could be useful for PDF bookmarks (if you are using the hyperref package) :
\makeatletter
\renewcommand*{\toclevel@chapter}{-1} % Put chapter depth at the same level as \part.
\chapter{Epilog}
\renewcommand*{\toclevel@chapter}{0
} % Put chapter depth back to its default value.
\makeatother

Brain and Cognitive Sciences, Machine Learning, Artificial Intelligence


Machine Learning

http://www.academicearth.org/courses/machine-learning/page:1/show:500
http://ai.stanford.edu/~ang/courses.html
https://www.coursera.org/course/ml
http://www.manning.com/pharrington/pharrington_meap_ch01.pdf

 Artificial Intelligence: Principles and Techniques


 STAIR (STanford AI Robot) project



http://www.aticourses.com/sampler/Advanced%20Topics%20in%20Digital%20Signal%20Processing.pdf






Brain and Cognitive Sciences


http://studiegids.uva.nl/web/sgs/nl/p/754_137330.html
http://www.bcs.rochester.edu/undergrad/clusters_minors.html
http://news.emory.edu/stories/2012/07/hanna_pladdy_music_brain/campus.html
http://www.cogsci.northwestern.edu/major.php
https://ccrma.stanford.edu/courses
http://www.gatsby.ucl.ac.uk/~turner/CV/TurnerCV.pdf
http://www.journals.elsevier.com/brain-and-cognition/recent-articles/


All Master Brain and Cognitive Sciences students can decide to take up electives in their master programme. The ones below are already approved as elective by the board of examiners. Students wishing to choose other electives - i.e. not mentioned in the course catalogue - need to submit an application to the board of examiners for the acceptance of the elective to the Master Brain and Cognitive Sciences. Use for this the elective form, which can be obtained by the student advisor or downloaded via the websitehttp://csca.uva.nl/education/information-for-current-students/electives/electives-2.html. N.B. Any student deciding on taking up electives need to discuss this with the study advisor in order to maintain a working study programme.

Semester 1
Master in Philosophy
Philosophy and Cognition (10 EC) (won't be taught in 2012-2013)

Life and Earth Sciences
Machine Learning: Pattern Recognition (6 EC)
Experimental Oncology (6 EC)
Advanced Immunology (6 EC)
Biomedical Systems Biology (6 EC)
Medical Biochemistry (6 EC) 
Master in Artificial Intelligence
Elements of Language Processing and Learning (3 EC)
Semester 2
Research master Brain and Cognitive Sciences 
Music Cognition (6 EC)
Cognitive Models of Language and Music (6 EC)

Research master Psychology 
Meta-analysis (3 EC)
Calculus (3 EC)
LISREL (6 EC)
Mathematical Statistics (6 EC)
A Practical Course in Bayesian Graphical Modeling (3 EC)
Cognitive Electrophysiology Methods (6 EC)
Brain Rhythms and Cognition (6 EC)
NeuroImaging 2 (won't be taught in 2012-2013)
Current debates in Social Cognition and Affect (won't be taught in 2012-2013)

Psychology
Cognitie van Meertaligen (6 EC)
Psychofarmacologie (6 EC)

Life and Earth Sciences
Experimental Oncology (6 EC)

Master in Artificial Intelligence
Statistical Structure in Language Processing (6 EC)
Unsupervised Language Learning (6 EC)

Master of Logic
Neural Nets and Symbolic Reasoning (6 EC)
Neurophilosophy of Free Will (6 EC)
Neurophilosophy of Self (6 EC)

Graduate School of Humanities 
Hot Topics in psycho- and neurolinguistics and Cognition (6 EC)
Graduate School of Economics 
Neuroeconomics (5 EC)
Graduate School of Sciences
Science in Perspective (6 EC)


Master programmes at other universities in the Netherlands also offer courses that could be of interest for Master Brain and Cognitive Sciences students. Check http://neurofederatie.org/dutch_ns.php for more information. Please note that these electives are not yet preapproved by the Board of Examiners. 
For more information about the course schedules/timetables, please visit http://rooster.uva.nl/  
Registration for courses
Students are automatically registered for all mandatory courses of the first semester of the first year of the Master Programme. For all other courses, students have to register themselves online through SIS, the internet portal for the student administration system. You can use SIS to enroll for exams, tutorials and lectures, to view your examination results and alter your personal data. SIS can be accessed easily throughhttps://www.sis.uva.nl, by entering your UvA ID (=student ID card number) and your password.

Because the master programme is interdisciplinary, specialised courses and electives may be organised by different departments. Please be aware that different departments have different registration deadlines. Some have a first come, first serve basis. Students have to meet the entry requirements for individual courses in order to register.

Enrollment periods and methods
Institute for Interdisciplinary Studies:
Semester 1: Registration online through SIS from the 11th of June to the 5th August 2012.
Semester 2: Registration online through SIS from the 12th of November 2012 to the 6th of January 2013.
Psychology:
Semester 1: from 18th June to 10th August 2012 hrs
Semester 2: Students can submit a registration form to info-mcs@uva.nl before January 6th 2013 (see:http://csca.uva.nl/education/information-for-current-students/electives/enrollment-for-elective-courses-in-different-institutions.html)
Linguistics/Humanities:
Semester 1: registration online through SIS from the 3rd of July to the 6th July 2012
Semester 2: registration online through SIS from the 27th of November (11.00 am) to the 7th of December (03.00 pm)
Logic/AI:
Semester 1: Registration online through SIS from 11th June to 5th August 2012
Semester 2: Registration online through SIS from the 12th of November 2012 to the 6th of January 2013.
Life Sciences
Semester 1: Registration online through SIS from the 11th June to the 5th of August 2012
Semester 2: Registration online through SIS from the 12th of November 2012 to the 6th of January 2013.
Economics:
Semester 1: Registration online through SIS from the 23rd of July to the 10th of August 2012
Semester 2 courses:
Block 1: After December 10th – before January 25th
Block 2: After December 10th – before March 22nd
Block 3: After December 10th – before May 24th

You have to register via SIS. When you sign yourself up for the seminar (‘werkgroep’) you have registered yourself for the whole course (lectures, exams, etc). If you have question you can consult the Education Office: First floor of the E-building, E1.52, tel. 020-5254133,open Monday- Friday, 9 am - 5 pm. If you don’t have a background in economics, it is advised to contact the lecturer of the course in advance.






http://www.et.tu-dresden.de/etit/index.php?id=ueber

http://en.wikipedia.org/wiki/List_of_European_universities_by_endowment
http://www.uni-heidelberg.de/results.html?cx=011868209755949426626:6yzqy3rcxue&cof=FORID:11&q=engineering%20science

http://www.timeshighereducation.co.uk/world-university-rankings/2011-12/world-ranking/region/europe

https://www.google.co.in/search?hl=en&qscrl=1&sclient=psy-ab&q=Brain+and+Cognitive+Sciences+in+germany&oq=Brain+and+Cognitive+Sciences+in+germany&gs_l=serp.3...4624766.4636336.1.4638897.12.12.0.0.0.0.238.1657.0j11j1.12.0...0.0...1c.1.7.serp.BzCZWbIZ8js&psj=1&biw=1092&bih=514&cad=cbv&sei=JKNOUbiDHcfArAfqr4CYAQ#hl=en&qscrl=1&sclient=psy-ab&q=neural++signal+processing+in+germany&oq=neural++signal+processing+in+germany&gs_l=serp.3...6002.13263.3.14048.27.27.0.0.0.0.153.3253.1j26.27.0...0.0...1c.1.7.serp.diyukTdA_aw&psj=1&bav=on.2,or.r_cp.r_qf.&bvm=bv.44158598,d.bmk&fp=4e769bdea11846fc&biw=1092&bih=514


http://en.wikipedia.org/wiki/List_of_institutions_granting_degrees_in_cognitive_science

http://www.mee.tcd.ie/neuraleng/Research

http://www.bme.master.unibe.ch/content/faculty__staff/index_eng.html

http://dsp.rice.edu/courses/elec548

http://www.tum.de/die-tum/fakultaeten/

Wednesday, January 9, 2013

DSP, Image, audio and Video processing work profile

AV Receivers
Biometrics
Digital Still Camera/DVR
Military
Portable Media Devices
Radar
Security
Streaming Media
Video Conferencing
Video Infrastructure Broadcast Video
VoIP Solutions
WiMAX/Wireless





Digital Image Processing at Other School

It is often interesting to compare what we do in EECS 490 to that done in similar classes at other schools.
UC Riverside's EE241 Advanced Digital Image Processing.
Penn State's CSE/EE 485 Digital Image Processing I.
CMU's cpe496 Rendering and Image Processing.
Columbia's E4830 Digital Image Processing.
Rice's ELEC 539 Digital Image Processing.
Stanford's EE368 Digital Image Processing.
MIT's 6.344 Two-Dimensional Signal and Image Processing.
Iowa's 55.148 Digital Image Processing.
UC Santa Barbara's ECE 178 Digital Image Processing has an interesting project on steganography.
George Mason's CS686 Image Processing and Applications.
George Mason's ECE537 Introduction to Digital Image Processing.
SMU's EE 7374 Digital Image Processing.
Utah's CS 6964 Image Processing for Graphics and Vision.
Colorado's ECEN 5672 Digital Image Processing.
Missouri's CS 4650/7650 Image Processing.
Southern Maine's ELE489 Digital Image Processing.
More will be added. Let me know if you come across any other interesting courses.



Digital Image Processing courses on the web
UC Berkeley http://inst.eecs.berkeley.edu/~ee225b/archives.html
Stanford http://www.stanford.edu/class/ee368/
University of Iowa http://www.icaen.uiowa.edu/~dip/
University of Wisconsin http://homepages.cae.wisc.edu/~ece533/
University of California, Berkeley,Multimedia Signal Processing, Communications and Networking
George Mason University,Computer Vision
Johns Hopkins University,Image Compression and Packet Video
University of Maryland, College Park,Digital Image Processing
University of Haifahttp://cs.haifa.ac.il/hagit/courses/ip/

Supplementary material
Brief tutorials on probability, statistics, vectors and matrices:  review.ppt     DIP_review.pdf
Introduction to MATLAB http://www.glue.umd.edu/~nsw/ench250/matlab.htm#sec4
MATLAB programming tips:  programming_tips.pdf matlab_prog.pdf apiext.pdf matopt.pdf
PPT demonstration of 1D and 2D linear convolution (contains animation): convolution.ppt
Fourier and Fourier transform: fourier.ppt
Tutorial on JPEG standard: JPEG.pdf
Sample exam questions: sample_test_problems.pdf  (this file is out of date)
Data compression related Java Demos:
Huffman coding    http://www.ee.uwa.edu.au/%7Eroberto/teach/itc314/java/Huffman/
                            http://www.cs.ttu.edu/%7Eeacosta/java/Huffcode/Huffcode.html
LZW compression http://www.cs.sfu.ca/cs/CC/365/li/squeeze/LZW.html








General Ability Test, Reasoning, General Science, General Knowledge and Engineering Discipline concerned
consists of questions on the technical subjects of relevant Engineering Discipline


Experience in Image processing algorithm.
Device drive experience.
Experience in VX Works/RTOS.
Experience in Android Multimedia and Open Core-Stage Fright/Policy Manager.

MP4 file format

This is a MP4 file format notes that reference from ISO IEC 14496-12 2005 edition about Information technology — Coding of audio-visual objects — Part 12: ISO base media file format

This is not designed for details explanation of each atom. For detail information, please read the ISO IEC 14496-12 document.

General Format


In general, MP4 file format has the following structure

ftyp
  • File type box that denote the mp4 media type
mdat
  • Media data box which contains the actual AV frames.
  • Within a mdat, there are chunks and samples
moov
  • Movie box which is the container for all metadata
  • Each moov has have a mvhd (Movie header box)
  • It can contains N trak box. Each trak box contains media specific meta data information Usually, it will have 2 tracks (video and audio)
  • More importantly, it contains sample information such as stsd, stts, stsz stsc, stco, etc...

Mdat Atom

MPEG4 sample


H.264 sample


Mdat is the media data atom which contain video and audio frames. As you can see from the screenshot, it is separated into 2 tracks (video and audio). Each track has multiple chunks and each chunks has multiple samples. Usually, you can treat each sample as a AV frame.

The number of sample in the chunk is defined in stsc atom (sample to chunk box) and the chunk offset is defined in stco atom (chunk offset box).

For MPEG4 (see MPEG4 sample), the red box denote the start code for MPEG4 Elementary stream. ISO 14496-14 states that MPEG4 media-data is stored as access units, a range of contiguous bytes for each access unit (a single access unit is the definition of a ‘sample’ for an MPEG-4 media stream). See 3.1.1 of the document

For H.264 (see H.264 sample), the red box denote the frame size (4 bytes). The blue box is the start of the frame, in this case, it is H.264 Non-IDR frame. ISO 14496-15 states that H.264 sample needs a length field preceding each NAL. See 5.2.3 of that document.

STSC - Sample To Chunk Box


The stsc tells you the number of samples in a chunk. To read this, you need to read first chunk and samples per chunks together. In the screenshot, first chunk has 1, 3, 5, 6..... and samples per chunk has 4, 5, 4, 5.... This means the followings:

chunk 1 - 2 has 4 samples
chunk 3 - 4 has 5 samples
chunk 5 has 4 samples

and so on...

STCO - Chunk Offset Box


This box tells you the location of the chunk. This offset is referred from the start of file. In the screenshot, it has values of 1516, 4880,...

As this is a video track, that means the first video chunk is located at 1516 bytes of the file.

STSZ - Sample Size Box


This box tell you the size of each sample in the chunk. It also tells you the number of sample counts in this track.

If you look at the entry size, it state 2229, 529,....

That means the first sample has 2229 bytes and second samples has 529 bytes
STSD - Sample Description Box


This box tells you the codec type, initialization and any information requires for the coding in the track.

As you can see in the screenshot, it contains AVC configuration box. Those are the information required (SPS, PPS, etc..) for decoding this video track.

Reference: ISO IEC 14496-12, ISO IEC 14496-14, ISO IEC 14496-15
MP4 File Structure




MP4 file is a popular multimedia container format. Many video and audio files are in this format. It should not be confused with the codec method MPEG-4.
It is an instance of the more general format defined by ISO/IEC 14496-12:2004 (MPEG-4 Part 12: ISO base media file format) which is directly based upon QuickTime File Format.  In my opinion, ISO based media file format is over-engineered.
MP4 file format can also be used for video streaming by using Movie Fragments boxes.  The minimum structure for such streaming is depicted in the following figure:











http://www.tomkv.com/what-is-mp4-format.html
http://perso.telecom-paristech.fr/~concolat/MPEGFileFormats.pdf
http://hzhang.net/home/blog/mp4-file-structure