I want to become a MPEG professional. Till now I know only basics of mpeg compression and it's associated tools. Is there any course, books or tutorials avaialable from which I can learn more about its programming. Is there any certification for MPEG programming too. Kindly help.
+ Reply to Thread
Results 1 to 15 of 15
-
-
There may be courses, books, tutorials, certification programs about MPEG compression and programming ...
Just A way (this is how I went; most propably not the fastest way though): I read a lot of loose information on the Internet. And I already have some programming background AND patience and endurance.
First overview, then deeper and deeper. I now have enough information, skills and tools to start programming with Tcl (a scripting language like Perl) and create my own proprietery JPEG to MPEG-1 transcoder (=no decompression and recompression). As far as I know, searched, asked etc., there are no tools that can output the EXACT format I require, although it is MPEG-1 compliant. So I will build my own tools, utilities or programs.
You said you knew basics of mpeg compression ...
In order to be able to do something simple like I want, one first needs to understand IN-DEPTH all steps of MPEG-compression/decompression. It's complex enough (a lot of math). Programming will follow later. Never lose sight of what you want to do and find the information to support that.
Perhaps you already know, but these are JUST A FEW concepts/process steps in MPEG-compression:
Discrete Cosine Transform (DCT)
Quantization Matrix
Run-Length Encoding
YUV
4:2:0
Chroma subsampling
MPEG file structure
JPEG compression (good starting point!)
(not many differences between JPEG and MPEG compression (I-frame))
Group Of Pictures (GOP)
MPEG frametypes
motion estimation
motion compensation
CBR/VBR
etc.
In case you don't know what these mean: look it up on the internet and study! Most of it is out there, though I pity I do not have working MProbe software and a complete set of ISO MPEG-1 specification.
Now to programming: It depends on your requirements (and skills) with what programming language you can best code. For instance: I don't need (and want) to code low-level C or C++. I do want to have a limited number of lines of code for flexibility and maintenance reasons and programs that are portable over multiple platforms. Performance is no issue for me.
Tcl has an extension library called Dali that can read (recognize), process/convert and write STRUCTURAL ELEMENTS of images and mpeg-1. I can do what I want to do with all of this free source code. In Tcl I only have to call the elements needed from the packages (off course with the right logic). The elements take care of the low-level logic. Perhaps there are better tools, but this approach suits me.
However, if you need to have control over the bit/bytestream on a lower level or if your codec needs to process a lot of data (and performance may become an issue), you may need to learn a low-level programming language like C++. -
Emile
I have to admire your ambition , but if you contiinue to
try to use languages that deliberately obscure the very
things that you need to deal with - bits - bytes - etc
you will never succeed.
Perl is a text processing language.
There are sources for reference MPEG codecs in C -
FOO,
Ok, I might be wrong about Perl ... which I don't use.
Have you actually read about Tcl and especially Dali yet? Although Tcl is a scripting language, I can do with it what I need.
http://www.cs.cornell.edu/dali/
'Getting into the right mindset
To understand Dalí, you have to get in the right mindset. Dalí was designed to be the run-time library for the next version of Rivl. The goal of the Rivl project is to design a programming language where video, audio, and images are data types in the language. The first version of Rivl was written as an interpreter. In the next version, a compiler will read a Rivl program and compile it, producing a program written in some virtual machine language. This language is Dalí. The Dalí language is a low level, high performance language with abstractions and operators to store and manipulate audio, video, and images. Since we didn't want to write yet-another-byte-code-interpreter for the Dalí Virtual Machine (VM), we decided to make Dalí an extension of a traditional programming language. Thus, the implementation of Dalí is a set of library routines written in portable C. A binding to the Tcl language is also available, and we are currently designing a Java binding.'
Further:
'These design decisions allow programmers to easily write very fast code. For example, in the current implementation of Dalí, an MPEG decoder can be expressed in about 100 lines of code and it runs 20% faster than hand tuned C code (i.e., the Berkeley MPEG player, mpeg_play).'
Available logic from Tcl/Dali I need:
1. Decoding JPEG to a PPM file
2. Encoding an MPEG-1 Video from a series of PPM Files (I and P Frame only).
3. Support for binary data.
etc.
It's there and in both Tcl and C.
I know I must do some C, but most effort on the bit and byte part is being taken care of. -
This will get you started.
http://www.pinnaclesys.com/files/MainPage/Professional/TopTabItems/products/dc1000/Whi...whitepaper.pdf
or html
http://216.239.37.104/search?q=cache:kxpHwny5L3wJ:www.pinnaclesys.com/files/MainPage/P...hl=en&ie=UTF-8
fixed the link /baldrick -
That looks very interesting, except I get connection refused
on that link. Have you got it and tried it any ?
edit: it works now. i'll check it out -
A tutorial (also on MPEG):
http://www-it.et.tudelft.nl/~inald/vcdemo/ -
Hello Mohnish72,
I came accross this course:
http://thanglong.ece.jhu.edu/Course/643/ -
Hi
I have to defend perl from the statement that it's a text-processing language. Anybody who thinks that doesn't know perl. It's very versatile and reading/writing bits/bytes in perl is very easy. In fact, many of the c functions required for this kind of work are accessible from perl. Perl just makes the rest of the programming much simpler.
Jimi -
Seriously.....
Originally Posted by jimicarlo
You do realize you dug up a 6 year old dead thread for basically no reason -
I got grey hair since that post. I still don't think Perl is appropriate for video streams. You should try Interpreted Basic or Lithp.
Similar Threads
-
portrain professional (the ad)
By Spiny Norman in forum Off topicReplies: 1Last Post: 27th Jul 2011, 14:19 -
Need Help about Professional Subtitling
By kei_siuip in forum SubtitleReplies: 1Last Post: 14th Mar 2011, 03:04 -
Buying a professional or semi-professional camcorder
By besimky in forum Newbie / General discussionsReplies: 8Last Post: 2nd Mar 2010, 16:21 -
Maven3D Professional 1.32
By Benjy in forum AudioReplies: 1Last Post: 31st Jan 2010, 01:35 -
how to make professional DVD's?
By php111 in forum Newbie / General discussionsReplies: 20Last Post: 20th Aug 2007, 23:07