VideoHelp Forum




+ Reply to Thread
Results 1 to 15 of 15
  1. 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.
    Quote Quote  
  2. Member
    Join Date
    Feb 2003
    Location
    Netherlands
    Search Comp PM
    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++.
    Quote Quote  
  3. Member
    Join Date
    Mar 2003
    Location
    Uranus
    Search Comp PM
    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
    Quote Quote  
  4. Member
    Join Date
    Feb 2003
    Location
    Netherlands
    Search Comp PM
    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.
    Quote Quote  
  5. Member
    Join Date
    Mar 2003
    Location
    Uranus
    Search Comp PM
    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
    Quote Quote  
  6. Take MPEG1-01.
    Quote Quote  
  7. Member
    Join Date
    Feb 2003
    Location
    Netherlands
    Search Comp PM
    Hello Mohnish72,

    I came accross this course:

    http://thanglong.ece.jhu.edu/Course/643/
    Quote Quote  
  8. Member
    Join Date
    Jan 2010
    Location
    United Kingdom
    Search Comp PM
    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
    Quote Quote  
  9. Banned
    Join Date
    Jun 2004
    Location
    ®Inside My Avatar™© U.S.
    Search Comp PM
    Seriously.....
    Originally Posted by jimicarlo
    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
    WTF is with the newbies!?!?!

    You do realize you dug up a 6 year old dead thread for basically no reason
    Quote Quote  
  10. Member
    Join Date
    Jan 2010
    Location
    United Kingdom
    Search Comp PM
    whoops
    wonder if that guy is a mpeg professional yet
    Quote Quote  
  11. Banned
    Join Date
    Jun 2004
    Location
    ®Inside My Avatar™© U.S.
    Search Comp PM
    Originally Posted by jimicarlo
    whoops
    wonder if that guy is a mpeg professional yet
    Quote Quote  
  12. Member
    Join Date
    Mar 2003
    Location
    Uranus
    Search Comp PM
    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.
    Quote Quote  
  13. Member
    Join Date
    Jan 2010
    Location
    United Kingdom
    Search Comp PM
    nothing wrong with C though.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!