What are codecs all about?

posted in Audio Codecs

Would a knowledgable user please post for all of us non literate computer/audio ppl please?

1. What is a “codec” ? Is it program code? Files? what kind?
2. Who makes them?
3. How do we know which is the “authorised”, “official” or best codec?
4. Why doesnt MS put all the necessary codecs into Windows?
5. Do we need separate versions for 32bit versus 64bit OS’s?
6. Where do we find these codecs?
7. Is there any relationship/dependancies between video and audio codecs?
8. Are codecs usually single files or packages?

Thanks in advance! reply



as I know,codec is a device or computer program capable of encoding and/or decoding a digital data stream or signal. The word codec is a portmanteau of 'compressor-decompressor' or, most commonly, 'coder-decoder'. reply

Feedback


thanks Sanjun, but thats only addressing part of what I was asking about.
No one else able to have a go? reply

Feedback


I’ll have a go....

Usually codecs that were created more recently are considered to be “better” as they’ve had more work done recently, yet others that have a higher cost are usually best, especially because they were created to last longer, IE longer without updates.

Also, Microsoft doesn’t create all of the codecs, they create a few, and or use some free versions that they package with their machines. Not to mention that some are created by competing companies like Macintosh with their aac codec (Yes they have more).

Yes, separate versions are required for the two operating systems. The reason being that 64bit applications (Not the Operating itself) requires the 64bit codecs.

Codecs are usually single files mostly in a .ax format.
Sometimes you’ll see them in a package IE a codecpack, try and avoid these.

THese coders and decoders are all over the net.

Hmm, who makes them?
Well, some companies make them for profit and some users alter them to improve their functionality.

Yes, their are some dependencies, but it usually is about the Operating system and video player you’re using not to mention if the codec is direct-show or not. As programs may require you to have the direct show codec. reply

Feedback


confused666 wrote:
1. What is a “codec” ? Is it program code? Files? what kind?

Sanjun’s answer gives the general answer. It stands for compressor-decompressor. It’s computer algorithms (implemented as code, then compiled into binary executable files) to compress audio/video data (usually so it takes less space).
In Windows codecs will usually have the extensions .dll (dynamic link library) .drv (driver) .ax (ActiveX) and sometimes .acm (audio codec manager) for audio.

confused666 wrote:
2. Who makes them?

For the algorithm it could be a committee that sets standards like the MPEG group. They get together with their best computer scientists, researchers, engineers, etc... then they gather the best of what’s currently known in the research community and implement a standard. Then individual companies (or open-source projects) implement it.
You also have codecs coming out of companies' coders and research divisions (WMV 9 and VC-1 for example came out of Microsoft research). They use a similar process, but perhaps without the same scale, resources, or level of cooperation, and since it’s proprietary there’s no standardization.

confused666 wrote:
3. How do we know which is the “authorised”, “official” or best codec?

Some codecs are made by individuals or companies, so they’re the “official” versions. Sometimes the implementation is so awful someone else will write an alternate decoder (think QuickTime or Real vs. QuickTime Alternative and Real Alternative - not codecs (they’re players) but just an example of alternate implementation). The implications intellectual-property-wise are complicated at best. It’s doubtful many companies would “authorize” others to freely implement their work.
In the case of standards like MPEG or H.264, anyone can implement it (given you pay the licensing fees), so there’s no “official” implementation.
Best codec - well you have reviews all the time... doom9’s codec shootouts and the MSU (Moscow State University) reviews are probably the more authoritative ones out there these days.

confused666 wrote:
4. Why doesnt MS put all the necessary codecs into Windows?

Why doesn’t Microsoft put Firefox and Java and Flash which are pretty much used by everyone these days? Because it’s not their product. They may not get permission from the company. Even if they did it would be in competition with their own offerings (Firefox vs. IE - or x264 vs. VC-1).

confused666 wrote:
5. Do we need separate versions for 32bit versus 64bit OS’s?

64-bit OSes can use 32-bit codecs, and that’s mostly what’s being done at the moment. The codec world is lagging in the way of 64-bit transition. Most 64-bit codecs are either open-source (x264 xvid) or Microsoft’s own (since they compiled their whole OS 64-bit anyway, so is WMP and its codecs).

confused666 wrote:
6. Where do we find these codecs?

google codec name + 64-bit

confused666 wrote:
7. Is there any relationship/dependancies between video and audio codecs?

Not that I know of. Interesting question. I wonder if it’d be possible to simultaneously encode both together to reduce overhead (maybe there could be some overlap between the two that could be compressed). Anyway such overhead would be minimal and it’d be really computationally complex. reply

Feedback


thanks guys, its seems to be the wild west when it comes to codecs then? I’ll check out those references you gave, thanks anonymous.

It seems from what you’re saying that there can be several alternative codecs produced by different vendors or interested persons for any particular format? so I wonder how those are referenced by the software players then? does the Windows registry provide pointers to them somehow? Does the codec installer insert the links into the registry, something like “find the codec for this particular format at this location of the file structure and the codecs file name is xxxx”... but they must have common interfaces, methods and properties then? Who publishes the interfaces? this is all so complex!

I expect a poor choice of codec could seriously impact performance or quality...there just programs after all so subject to bugs...and how would we know? reply

Feedback


confused666 wrote:
thanks guys, its seems to be the wild west when it comes to codecs then?

When Microsoft made the AVI format, they allowed people to make their own audio and video codecs and let them register them using the fourcc (video) and tag number (audio). This was good in that it allows competition (whoever can make the best codec). The downside is Microsoft didn’t do a good job of keeping track of fourcc’s and tag numbers (see http://msdn.microsoft.com/en-us/library/ms867195.aspx and compare it with say http://www.fourcc.org - the latter of which isn’t even complete), so you have this alphabet soup of fourcc’s some of which no one knows anything about.

confused666 wrote:
It seems from what you’re saying that there can be several alternative codecs produced by different vendors or interested persons for any particular format?

Perhaps it’ll be easier with actual examples.
Motion JPEG (no actual standard, but used a lot in digital camera movies; and so akin to a standard it might as well have been one) has a lot of different vendors making it: MainConcept, Morgan Multimedia, Pegasus Imaging, Lead Technologies, and maybe more. The one in DirectX (part of Windows) is from Microsoft, DirectShow-only, and decode-only.
Different kind of example: DivX 5 videos (fourcc DX50) can be decoded by the DivX codec, the Xvid codec, 3ivx, ffdshow-tryouts among others.

confused666 wrote:
so I wonder how those are referenced by the software players then? does the Windows registry provide pointers to them somehow? Does the codec installer insert the links into the registry, something like “find the codec for this particular format at this location of the file structure and the codecs file name is xxxx”... but they must have common interfaces, methods and properties then? Who publishes the interfaces? this is all so complex!

Yes. For VfW codecs, it’s referenced in the registry. Specifically at
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
You’ll see a bunch of strings in there like VIDC.XVID with value xvidvfw.dll for example. The string name refers to the fourcc (XVID for example - in audio codecs they use a diff string - msacm.stringname for example msacm.g723), and the value refers to the decoder to use (xvidvfw.dll for this example). So if you wanted to change the decoder for files with fourcc XVID to DivX, you’d change the value from xvidvfw.dll to DIVX.DLL (just an example). Installers are smart and can make those changes themselves. The sad part is they rarely ask for your permission and will readily hijack already existing associations (everyone wants to promote their own products!)
Before “pure” 32-bit Windows (Windows 2000, XP), you had hybrid 16-bit/32-bit Windows (95, 98, Me). Those referred to a file named system.ini in the windows folder. The info is in the [drivers32] section for 32-bit codecs and the [drivers] section for 16-bit codecs. In that section you might see a line like VIDC.XVID=xvidvfw.dll which by now you know what it means.
In 64-bit Windows the location in the registry is slightly different. I think it’s in
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32
for 32-bit codecs. Not sure about 64-bit codecs.
All the above is for VfW codecs. I will confess I do not know how DirectShow codecs get referenced, but it’s probably via the registry too.

confused666 wrote:
I expect a poor choice of codec could seriously impact performance or quality...there just programs after all so subject to bugs...and how would we know?

Trial and error. If a codec keeps crashing explorer when you’re previewing thumbnails or crashing during playback it may be time to try an alternative or update it to the newest version. Stability is more often the issue than performance. Performance can be an issue in newer codecs though (compare playing an HD H.264 mov in quicktime player vs. VLC media player and compare CPU usage: the libavcodec (or is it x264?) decoder in VLC is way superior to Apple’s). reply

Feedback


" Installers are smart and can make those changes themselves. The sad part is they rarely ask for your permission and will readily hijack already existing associations (everyone wants to promote their own products!) "

Oh man! What we need is a little windows app that displays a list of all the installed codecs by type showing the status, vendor, date and time of installation. (with a switch we could set to stop them being overwritten by other packages)

Thats all very awesome info, thankyou anonymous! I feel I have a “handle” on these things now, although I can see I have a big job to keep track of them on my systems... reply

Feedback


confused666 wrote:
Oh man! What we need is a little windows app that displays a list of all the installed codecs by type showing the status, vendor, date and time of installation. (with a switch we could set to stop them being overwritten by other packages)

Actually there are already tools to do some of that. If you run gspot (http://www.headbands.com/gpost) and go to system, list codecs and other filters, and system list media types, you get some of that information (and much more). You can also use the render buttons at the bottom left (the little 1’s 2’s and 3’s) to see how the system renders a media file (it’ll list the filters on the right and you can click the arrows and the file names for more info).
In AVICodec, go to the codec and filters tab. you can see the list of video codecs, audio codecs, directshow codecs and filters, and DMO objects.
MediaInspector has a similar feature as AVICodec.
Don’t know about MediaInfo though.
I also heard sherlock the codec detective can allow you to change some of those things, but I haven’t played with it. reply

Feedback


awesome, thankyou! reply

Feedback


Post Your Answer

Topic
Your reply
Your name

or log in
Verify you're human

By submitting this form you agree to our posting rules,
privacy policy and our disclaimer.