View Full Version : Are there any US codec developers anymore?
General Lee D. Mented
20th September 2003, 21:31
Seems like I'm the only one in in my timezone. By the time I get home from work or done with other stuff most days, everyone on IRC who does any kind of codec work has gone to bed. When they're around, I'm usually at work or sleeping.
ChristianHJW
20th September 2003, 23:26
lo GLDM, yes, i know that problem, and i cant be of big help if i get on my PC at 3 AM CET occasionally, feeding my baby daughter, half asleep, and also i have no clue about codec development :P .....
Blight
21st September 2003, 01:49
The U.S. doesn't lead for a very conductive working enviroment I guess. Everything seems to be coming from Europe or Israel these days.
Of course, once we make it big we all seem to go corporate in the U.S.
Joe Fenton
21st September 2003, 03:42
The problem here in the US is that nearly any form of video compression is patented out the wazoo, and the industry isn't above taking programmers to court to protect their monopoly on video. US codec programmers go commercial to protect their own skins. If you don't have a major company behind you, you just don't work in the field.
This might be a bit of an exageration, but not by much.
I've been busy working on a few emulator projects, but I'm trying to find time to work on some video projects.
TheXung
21st September 2003, 19:46
Originally posted by Blight
Everything seems to be coming from Europe or Israel these days.
I had the impression all the xvid developers were either Germans or Australian.
I think most of the guys over at xiph are americans.
I dunno, blame it on american culture or school system, but many of us all seem either really busy or lazy depending on who you look at. Why work for free when you can get paid for doing it?
General Lee D. Mented
21st September 2003, 22:27
Originally posted by Joe Fenton
The problem here in the US is that nearly any form of video compression is patented out the wazoo, and the industry isn't above taking programmers to court to protect their monopoly on video. US codec programmers go commercial to protect their own skins. If you don't have a major company behind you, you just don't work in the field.
This might be a bit of an exageration, but not by much.
I've been busy working on a few emulator projects, but I'm trying to find time to work on some video projects.
Hmm, maybe I should quit before I'm sued then. :/
Joe Fenton
22nd September 2003, 03:22
Originally posted by General Lee D. Mented
Hmm, maybe I should quit before I'm sued then. :/
Well, you should probably wait until you get it working. If it sucks, they won't bother. :D
temporance
22nd September 2003, 08:07
IMPO, US companies politics is not conducive to codec development. US management style is often quite "top-down" and lead by sales/marketing, but codec development really needs a "bottom-up", or "flat" organization. For example, management can't just say: "I need you to improve performance by 25%, how long will it take?". A more realistic codec team converstaion is likely to be "I've just discovered this really cool method for encoding B-frames, looks like it'll really speed up our encoder".
That's the corporate world of codec development. In the open-source world, there's really no reason why the US shouldn't be on a par with other countries - after all, most correspondance is done in English. Perhaps US industry is more effective at getting codec brains "off the street" and into corporate laboratories where they don't have time for open-source work. Or perhaps US Universities have tighter corporate links than, say, in Europe.
alexnoe
22nd September 2003, 12:07
after all, most correspondance is done in English. If you want to do your correspondance in Russian, then you are welcome to....and you would then see why it might be a good idea to stick with English ;)
General Lee D. Mented
22nd September 2003, 16:39
Originally posted by temporance
Or perhaps US Universities have tighter corporate links than, say, in Europe.
Well if my college experience was typical, then I'd say they prepare you for a future of pretending microsoft and all GUIs do not exist and a career in maintaining some kind of archaic database until the end of time. Which is interesting, because these days it seems like the entire programmer job market is either maintaining archaic databases until the end of time, or writing web (J2EE, ASP.NET, PHP, MySQL, VB) interfaces to archaic databases. I don't think I've ever seen an ad for a programming job that involved any kind of creativity or even higher thinking like problem solving (not solution optimization like "make it faster!").
alexnoe
22nd September 2003, 16:48
If people started to improve the performance of apps, and stopped using silly languages like VB (which does neither support callback functions, nor easy inclusing of assembler code...), people could not any longer be made believe that you need at least 10 GHz and 16 GB of memory...
(no, this is no sarcasm or whatsoever, i'm totally serious)
temporance
22nd September 2003, 16:57
Originally posted by General Lee D. Mented
I don't think I've ever seen an ad for a programming job that involved any kind of creativity or even higher thinking like problem solving (not solution optimization like "make it faster!"). That's because these jobs are very very popular with existing staff: any company that has to recruit for these roles is either expanding expanding very rapidly, or in big trouble.
Joe Fenton
22nd September 2003, 22:16
In the US, college or vocational/technical school does nothing to get you a job. You have to prove you deserve the job first - write some code that knocks somebodies' socks off, THEN they hire you. The reason is simple: why hire an American programmer at $30K+ a year when you can import a foreign engineer or two (or ten or a hundred), pay them less than one third that, and stack 'em ten to an apartment. Both HP and Microsoft got in trouble for doing just that and had to pay a fine. Doesn't mean they changed their ways any.:mad:
See, that's what General Lee is doing - he's trying to make something good enough to get noticed so that someone throws a wad of money at him. ;) Good luck! It's a tough market.
Blight
23rd September 2003, 06:19
I had offers to work both in Europe and in the U.S. but frankly, I prefer doing my own thing on my own time and slowly building up my own business. And yes, you CAN do that if what you're working on has potentinal. And frankly, there are A LOT of open holes in the industry right now with regards to optimizations and real-time software.
Just look at the current situation in the DeInterlacing and Scaler fields. There is NOT ONE deinterlacer or scaler (upscaler) that is even close to the high-end stuff you have in hardware these days. And I'm talking from experience, all the deinterlacers you see today in software are VERY simplistic compared to what's really out there in hardware. And doing it in hardware is harder as you've got a frame-buffer limitation that's due to the expensiveness of gates that is non-existant in software.
There are a lot of open fields out there that's no body is taking advantage of.
temporance
23rd September 2003, 06:35
Completely agree with you Blight, software resamplers (=deinterlacers, resizers) are very poor when compared to algorithms used by hardware that I was working on five years old.
However, going it alone is a perilous path. All of this technology is very heavily patented - finding a niche in the market AND a hole in the patent landscape is near enough impossible. But some of the key patents may well be expiring soon -- so perhaps things will kick off then.
BTW, if you're interested in working with someone on this then PM me - I'm always looking for new, interesting projects.
General Lee D. Mented
23rd September 2003, 19:03
Originally posted by alexnoe
If people started to improve the performance of apps, and stopped using silly languages like VB (which does neither support callback functions, nor easy inclusing of assembler code...), people could not any longer be made believe that you need at least 10 GHz and 16 GB of memory...
(no, this is no sarcasm or whatsoever, i'm totally serious)
I still don't understand callback functions, it wasn't covered in school, much like templates. :/
TheXung
23rd September 2003, 21:33
Originally posted by temporance
Completely agree with you Blight, software resamplers (=deinterlacers, resizers) are very poor when compared to algorithms used by hardware that I was working on five years old.
This is a rather stereotypical statement but I think CS majors get very little training in math. After their couple freshmen year calculus courses, they never use that again thus a lot of it is forgotten. I do not know of any strictly CS majors that have taken DSP or any other signals class. And CS majors are the majority of people writing open source projects. And just how many EE's go to work for software companies?
Joe Fenton
23rd September 2003, 23:36
Originally posted by TheXung
This is a rather stereotypical statement but I think CS majors get very little training in math. After their couple freshmen year calculus courses, they never use that again thus a lot of it is forgotten. I do not know of any strictly CS majors that have taken DSP or any other signals class. And CS majors are the majority of people writing open source projects. And just how many EE's go to work for software companies?
I did because of the market. I got a BSEE, but couldn't find work as an engineer, so I took my skills on the computer to a company I was familiar with. I had to demonstrate ability before they'd even talk to me. I agree, the extra math and physics classes I took as an engineer have helped tremendously in programming. Look at a typical game these days - you have complex 3D modeling with things like dynamic lighting and reflections, you have physics in collisions and other interactions, and complex algorithms for path taking and enemy ai. Sure, a CS major can read up on it and learn what the equations mean, but an engineer comes in with all that math already familiar and commonplace.
Blight
24th September 2003, 01:32
TheXung:
Nearly every software filter we have today (about 95% of them) is based on low-grade math (something tought on a 6th grade level). Simple matrices, multiplication and addition.
The only big exception maybe being Bicubic scaling.
I guess all the math people are working for the hardware people, it's rather sad, but software has a lot less limitation than hardware and we could really see some nice things if someone was going at it.
Joe:
Here they teach math like crazy, but 99% of programmers don't need it, heck, I don't need it and I write graphic based application (with very limited DSP I had to write myself).
Still, there are A LOT of open markets out there and there are NO patents on a lot of these things as that would force them to expose their trade secrets and we know how these Chinese manufacturers care about patents and royalties.
temporance:
I'm not really doing DSP, more of a smart/adaptive GUI, but I am slowly putting in some DSP code, but sadly, I can't really pay you...
BoNz1
24th September 2003, 03:45
Originally posted by TheXung
This is a rather stereotypical statement but I think CS majors get very little training in math. After their couple freshmen year calculus courses, they never use that again thus a lot of it is forgotten.
I was speaking with one of my friends today about this very thing. He is a computer science major and they need a lot of 3rd and 4th year math classes, so here certainly they seem to be getting their fair share of math. Whether or not they even remember it and use it well that may be a different story altogether, ;). For myself though I only need 2nd year calculus and I am a biochem major. Of course I will take some linear algebra and stats even though this is not required but will be extremely useful no matter what I do.
trbarry
24th September 2003, 04:11
Personally I was a physics major for my first 3 years of college before switching into computers.
But I think it is a mistake to believe a good mathematician will automatically be able to write efficient video processing algorithms.
When you are talking about the mathematical complexity of an algoritm then you want them designed by good mathematicians. But when you get down to the hardware and need that last order of magnitude efficiency then it is time for thinking in procedural (not functional) terms and writing assembler language. And assembler language that looks like mathematics does not necessarily run well.
Video is one of the few areas where it is worth while confusing the algorithms and increasing the programming & maintenance costs in order to get the last nickel's worth of processing power. So often a collection of inelegant compromises and unprovable conjectures will turn out better real world performance, even if it comes with a few warts. The alternative may be an inability to run it on your target hardware.
< was this a rant? ;) >
- Tom
General Lee D. Mented
24th September 2003, 05:47
For the CS major track I was in, we were required to do calculus 1-3, discrete math, statistics, and linear algebra. I'm bad at math, so I've forgotten large portions of it. I was planning to take the audio/DSP course as I thought it would be useful for game programming, but I left when I couldn't pass the upper division software dev and statistics.
I don't know if math is really all that useful in modern software development outside of a few areas. I mean sure someone has to write the math libraries for a physics system or a 3D driver, but these days most other people who need math use math libraries. 3D engines themselves are starting to become more prepackaged affairs of a set of API calls and some convenient data structures to handle models. I think the next major frontier that "pushes the envelope" will be in physics simulation for games. It's a relatively unexplored area compared to 3D graphics, and I'd estimate it's lagging about 10 years behind graphics in advancement. Since modern video cards offload the cpu so much, more is becoming feasible.
BTW if my codec actually works, know that it was actually designed without any actual math. The wavelet transform is basicly just a process I wanted to do that happens to coincide with a mathematical equation. The new transform I've designed isn't even considered that, but it's not implemented in the code yet.
Acaila
24th September 2003, 12:18
I do not know of any strictly CS majors that have taken DSP or any other signals class.Speaking for myself, we are required to take signal and image processing and computer graphics and also have quite a lot of math in the form of calculus, linear algebra, discrete math and statistics. And that's just the first three years. After that you can specialize to more math oriented or more signal processing oriented courses (I'll be taking the latter). But then I don't live in the US, so things might work a little different here :).
But like Tom said, I also believe that to write good software you'd need to know a lot more about programming then about math. Math alone doesn't get you anywhere, it is more of a support for other areas. Coding without knowing high level math on the other hand can get you quite far.
temporance
24th September 2003, 13:03
Originally posted by Acaila
But like Tom said, I also believe that to write good software you'd need to know a lot more about programming then about math. Math alone doesn't get you anywhere, it is more of a support for other areas. Coding without knowing high level math on the other hand can get you quite far. Yes, there is a great deal of truth in this statement and you often find a mixture of DSP and software experts on a codec team. Just look at the H.264 reference code for an example of the bad software written by image processing and math experts!
Joe Fenton
24th September 2003, 19:22
Originally posted by temporance
Yes, there is a great deal of truth in this statement and you often find a mixture of DSP and software experts on a codec team. Just look at the H.264 reference code for an example of the bad software written by image processing and math experts!
Not a good example. As noted on the h.264 thread, the reference code was written in Fortran, then converted to C by a Fortan-to-C conversion utility. This is common as engineers tend to like Fortran more than the more common C/C++ of CS folks. I used Fortran for all my engineering projects as well. Fortran is well suited for complex math-oriented tasks like compression. However, the converted code would look like shit. What needs to happen there is to have someone go back and rewrite the code by hand from the specs instead of converting Fortran test code.
TheXung
24th September 2003, 20:49
I never meant to say that CS students don't take as many math classes. On the contrary, at my university, they actually take the most math classes of anyone in the engineering school. Their cirriculum requires single, multiple and differential equations calculus, discrete I and II, linear algebra and probability. However, ironically, they don't use this in any of their classes or assignments short of applying some of the discrete stuff, which has practically no use in the design of image processing. In graphics, other than the image synthesis class where a lot of the science is currently unknown, all the equations have been done and laid out; the CS assignments are just to type it into code. Not only that but the math is quite trivial as well, something you could show a high school student and he would understand what is going on with the numbers. I mean here are some of the electives they take, databases, computer networks, dependable computing, security, programming langauges, compilers . . . The other engineering classes, the assignments are to work out the math; daily practice with calculus. I doubt I could explain how to compute CTFTs to a highschool student and get him to follow what's going on with the numbers.
Just how well can someone program an algorithm they don't understand? not just have difficulty understanding but have absolutely no clue how it can work. Just how well can someone improve upon the science of the field if they don't understand?
Joe Fenton
25th September 2003, 07:57
Originally posted by TheXung
I never meant to say that CS students don't take as many math classes. On the contrary, at my university, they actually take the most math classes of anyone in the engineering school. Their cirriculum requires single, multiple and differential equations calculus, discrete I and II, linear algebra and probability.
Uh - those are base classes for all engineering disciplines. Once you've taken all those, you'll get a few more specialized classes that relate more closely to your chosen major.
I sat in all those classes with mechanical engineers, chemical engineers, civil engineers, electrical engineers, and a few other folks. Us electrical engineers went on to take another more advanced differential equations class. Those of us who planned to take antenna engineering classes also had to take an advanced tensor calculus class. If we planned on taking classes in integrated circuits, we also had to take several classes on physics of solid state materials as well as quantum mechanics.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.