
Ask HN: Getting into low level audiovisual codecs and graphics - z3phyr
As an intermediate programmer, what are the goto resources to get into low level programming on audi video codecs and computer graphics?
======
d--b
Before getting to the code, you need to understand the principles, which are
getting quite complex. I would start by reading how mpeg-2 worked, it’s
sufficiently simple. Then move on to h.264, you’ll see a shitload of
innovation there, not all of which is easy to grasp. And then look into state
of the art stuff.

The recent video codecs are incredibly complicated, and as a solo developer,
it would be pretty hard to develop a codec by yourself. You may be able to
invent some feature that improves the coding slightly, but coding efficiency
is getting pretty hard to beat.

What to read and what code to learn is difficult to say depending on your
objective. If your objective is getting a job in video coding, it’s not too
hard cause these jobs are quite academic and you don’t get paid much, so if
you know some coding and show some interest in learning the field, I don’t
think it’d be too hard for you to find an intern position in a lab or
something.

~~~
z3phyr
Can you recommend a reading resource? I was looking for MPEG-1 and MPEG-2
specifications, and to the best of my knowledge, they are behind a paywall. I
will probably buy them if there is no other choice other than the specs.

~~~
yesenadam
There are a lot of relevant-looking links in the references section of this
page:

[https://en.wikipedia.org/wiki/MPEG-1](https://en.wikipedia.org/wiki/MPEG-1)

Isn't everything relevant linked to there? If not, you'll be able to get it
free here [http://gen.lib.rus.ec/scimag/](http://gen.lib.rus.ec/scimag/)

------
deepaksurti
If you really want to do a practical hands on deep dive in Graphics: I would
strong recommend [1].

Just work through this book and you are set. There is a a LOT of demand and
short supply for good 3D graphics programmers. I would say it should be either
Media or Graphics; both may be an overkill! Good luck.

[1]
[http://www.amazon.com/gp/product/B00LAMQYF2/](http://www.amazon.com/gp/product/B00LAMQYF2/)

------
billconan
video codec is an undocumented mine field. If you want to know how to decode
and encode video, looking at libav's example code or gstreamer's example code
is the best way.

If you want to understand the fundamentals. The best I know is this
[https://people.xiph.org/~xiphmont/demo/daala/demo1.shtml](https://people.xiph.org/~xiphmont/demo/daala/demo1.shtml)

------
alltakendamned
if you want a fun introduction, I suggest becoming part of the demoscene !

