0

I'm a junior engineer doing research and work in Computer Vision. More and more I am finding that I get bogged down or stuck on projects because I do not have enough low-level knowledge about video formats. I'm talking about codecs, containers, compression, color formats, transmission protocols etc. Acronyms and terms such as PAL, NTCS, DVB-T, YUV, YCbCr, H.264, MPEG, interlacing, progressive scan and others come to mind. For example, I would love to get to a point where I can come up with answers like this simply by glancing at a video frame.

It seems to me that this is a difficult area of knowledge to break into. For computer graphics there is the OpenGL Super Bible, for AI there is Russel and Norvig; is there some authoritative, introductory book or source of knowledge that people in this industry can recommend? Ideally something that includes programming examples (e.g. how to manually implement a H.264 decoding routine?). Short of spending the next five years reading the official specifications I'm not sure how to extend my knowledge in this area.

Community
  • 1
  • 1
aaronsnoswell
  • 6,051
  • 5
  • 47
  • 69

2 Answers2

1

Not that I know of. I Spend a lot of time reading official specifications (more than 5 years at this point). Ironically I have been thinking about writing this tomb. I'm just am not sure about the market potential.

I can point out a few of my favorite resources however:

First is the ITU-T publications. These are the official standards. http://www.itu.int/en/ITU-T/publications/Pages/default.aspx

I seem to reference the book video demystified a lot. For basic codec introduction I like An Introduction to Video Compression in C/C++. And I think the videos at xiph.org are really awesome.

szatmary
  • 29,969
  • 8
  • 44
  • 57
1

Some years ago, I wrote this basic introduction called Multimedia Technology Basics. At the very least, that should help you with the YUV/YCbCr format recognition.

What you will want to study depends on what exactly you want (or need) to accomplish. Do you need to write encoders or decoders? Implementing an H.264 decoder is not a trivial, or even an intermediate multimedia task-- I doubt you want to try to do that, except if you're truly curious about the low level details behind the decoding algorithm (I absolutely am-- see my handle). A gentler way to come up to speed on programming multimedia compression schemes would be to tackle a JPEG decoder. Here's a blog post I wrote on that: Learn Multimedia Programming By Writing A JPEG Decoder

There is no shortage of literature and videos out there that dive right into the hardcore math-heavy details of multimedia but I discourage this approach (since it tends to scare off a lot of people). So beware of that. Don't be afraid to post more specific questions here about more refined video and multimedia topics.

Multimedia Mike
  • 12,660
  • 5
  • 46
  • 62