Thursday, August 23, 2007

Microsft supported video codecs with FourCC

http://wiki.multimedia.cx/index.php?title=Main_Page


Registered FOURCCs
FOURCCs are registered with Microsoft by the vendors of the respective multimedia software technologies. The currently registered FOURCCs appear in the following list.
FourCC Description
ANIM Intel - RDX
AUR2 AuraVision - Aura 2 Codec - YUV 422
AURA AuraVision - Aura 1 Codec - YUV 411
BT20 Brooktree - MediaStream codec
BTCV Brooktree - Composite Video codec
CC12 Intel - YUV12 codec
CDVC Canopus - DV codec
CHAM Winnov, Inc. - MM_WINNOV_CAVIARA_CHAMPAGNE
CPLA Weitek - 4:2:0 YUV Planar
CVID Supermac - Cinepak
CWLT reserved
DUCK Duck Corp. - TrueMotion 1.0
DVE2 InSoft - DVE-2 Videoconferencing codec
DXT1 reserved
DXT2 reserved
DXT3 reserved
DXT4 reserved
DXT5 reserved
DXTC DirectX Texture Compression
FLJP D-Vision - Field Encoded Motion JPEG With LSI Bitstream Format
GWLT reserved
H260 Intel - Conferencing codec
H261 Intel - Conferencing codec
H262 Intel - Conferencing codec
H263 Intel - Conferencing codec
H264 Intel - Conferencing codec
H265 Intel - Conferencing codec
H266 Intel - Conferencing codec
H267 Intel - Conferencing codec
H268 Intel - Conferencing codec
H269 Intel - Conferencing codec
I263 Intel - I263
I420 Intel - Indeo 4 codec
IAN Intel - RDX
ICLB InSoft - CellB Videoconferencing codec
ILVC Intel - Layered Video
ILVR ITU-T - H.263+ compression standard
IRAW Intel - YUV uncompressed
IV30 Intel - Indeo Video 3 codec
IV31 Intel - Indeo Video 3.1 codec
IV32 Intel - Indeo Video 3 codec
IV33 Intel - Indeo Video 3 codec
IV34 Intel - Indeo Video 3 codec
IV35 Intel - Indeo Video 3 codec
IV36 Intel - Indeo Video 3 codec
IV37 Intel - Indeo Video 3 codec
IV38 Intel - Indeo Video 3 codec
IV39 Intel - Indeo Video 3 codec
IV40 Intel - Indeo Video 4 codec
IV41 Intel - Indeo Video 4 codec
IV42 Intel - Indeo Video 4 codec
IV43 Intel - Indeo Video 4 codec
IV44 Intel - Indeo Video 4 codec
IV45 Intel - Indeo Video 4 codec
IV46 Intel - Indeo Video 4 codec
IV47 Intel - Indeo Video 4 codec
IV48 Intel - Indeo Video 4 codec
IV49 Intel - Indeo Video 4 codec
IV50 Intel - Indeo 5.0
MP42 Microsoft - MPEG-4 Video Codec V2
MPEG Chromatic - MPEG 1 Video I Frame
MRCA FAST Multimedia - Mrcodec
MRLE Microsoft - Run Length Encoding
MSVC Microsoft - Video 1
NTN1 Nogatech - Video Compression 1
qpeq Q-Team - QPEG 1.1 Format video codec
RGBT Computer Concepts - 32 bit support
RT21 Intel - Indeo 2.1 codec
RVX Intel - RDX
SDCC Sun Communications - Digital Camera Codec
SFMC Crystal Net - SFM Codec
SMSC Radius - proprietary
SMSD Radius - proprietary
SPLC Splash Studios - ACM audio codec
SQZ2 Microsoft - VXtreme Video Codec V2
SV10 Sorenson - Video R1
TLMS TeraLogic - Motion Intraframe Codec
TLST TeraLogic - Motion Intraframe Codec
TM20 Duck Corp. - TrueMotion 2.0
TMIC TeraLogic - Motion Intraframe Codec
TMOT Horizons Technology - TrueMotion Video Compression Algorithm
TR20 Duck Corp. - TrueMotion RT 2.0
V422 Vitec Multimedia - 24 bit YUV 4:2:2 format (CCIR 601). For this format, 2 consecutive pixels are represented by a 32 bit (4 byte) Y1UY2V color value.
V655 Vitec Multimedia - 16 bit YUV 4:2:2 format.
VCR1 ATI - VCR 1.0
VIVO Vivo - H.263 Video Codec
VIXL Miro Computer Products AG - for use with the Miro line of capture cards.
VLV1 Videologic - VLCAP.DRV
WBVC Winbond Electronics - W9960
XLV0 NetXL, Inc. - XL Video Decoder
YC12 Intel - YUV12 codec
YUV8 Winnov, Inc. - MM_WINNOV_CAVIAR_YUV8
YUV9 Intel - YUV9
YUYV Canopus - YUYV compressor
ZPEG Metheus - Video Zipper

The following list shows the FOURCC values for DIB compression.
FourCC Description
CYUV Creative Labs, Inc - Creative Labs YUV
FVF1 Iterated Systems, Inc. - Fractal Video Frame
IF09 Intel - Intel Intermediate YUV9
JPEG Microsoft - Still Image JPEG DIB
MJPG Microsoft - Motion JPEG DIB Format
PHMO IBM - Photomotion
ULTI IBM - Ultimotion
VDCT Vitec Multimedia - Video Maker Pro DIB
VIDS Vitec Multimedia - YUV 4:2:2 CCIR 601 for V422
YU92 Intel - YUV


Registering a FOURCC Code

Registering codes with Microsoft prevents needless duplication of work and helps development of standards. To register a FOURCC code, send e-mail to mmreg@microsoft.com. Please include your name, title, company name, and phone and fax numbers.

Use this e-mail address to register the following:

• Manufacturer IDs. Manufacturer IDs are unique IDs used on device drivers to identify the vendor for the driver. The driver vendor is usually also the hardware vendor.
Example Manufacturer ID: MM_ACME


• Product IDs. Product IDs are used to identify which specific device from a manufacturer is being used. For example, Microsoft has written drivers for the MIDI mapper and the WAVE mapper. Each of these has the (same) Microsoft Manufacturer ID and a unique Product ID. Product IDs and Product Names are assigned by the manufacturer.
The names must be unique; using your company name followed by the product name is suggested. For example, if the Acme Company wanted to register the Super Audio card, which has a synthesizer, MIDI I/O ports, and waveform I/O, appropriate names would be:

MM_ACME_SASYNTH
MM_ACME_SAMIDIIN
MM_ACME_SAMIDIOUT
MM_ACME_SAWAVEIN
MM_ACME_SAWAVEOUT



• Installable Compressor ID. The Installable Compressor interface requires the driver to uniquely identify itself with a FOURCC. In the AVI file, this is stored in the stream header chunk element fccHandler. Please consult the Microsoft DirectShow SDK, available through MSDN Professional subscription, for more information.

The FOURCC should be used to identify state data belonging to the driver. All codecs should use the following convention for defining their state information structure:

typedef struct _stateinfo { FOURCC fcc; .... } STATEINFO;
Then, when the state info in a SET_STATE_INFO message is received, you should check the FOURCC to verify that it has state information for the driver.




FOURCC Data Formats :

Data formats for FOURCC include: RBG, YUV, and compressed formats. RGB describes the colors produced by emitting light, such as on a video monitor. YUV formats can be either packed or planar. In packed YUV formats, Y, U, and V samples are packed together in macropixels and stored in a single array. Planar formats store each component in a separate array and then fuse the three separate planes to create the final image.

Tables of formats are available at the following sites:
YUV formats - http://www.webartz.com/fourcc/indexyuv.htm
RGB formats - http://www.webartz.com/fourcc/indexrgb.htm
Compressed formats - http://www.webartz.com/fourcc/indexcod.htm

No comments: