Section 4 of 14 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14
Sorenson Video
Sorenson Video, from Sorenson Vision, is a low bitrate video codec
that appears to be available only for Apple QuickTime as of May 10,
1999. Sorenson Video was used to compress the Star Wars trailer for
"Star Wars Episode I: The Phantom Menace" distributed over the Internet
as a QuickTime file in the spring of 1999. No Video for Windows
Sorenson Video codec appears to be available.
Sorenson Video is reportedly based on some kind of vector
quantization technology that can achieve very high compression.
According to Mark Podlipec's XAnim site (May 10, 1999), he contacted
Sorenson Vision to find out if he could license Sorenson Video for
incorporation in the XAnim Unix X11 animation, audio, and video
player. According to his Web site, Sorenson replied that Apple will
not allow Sorenson to license Sorenson Video to others.
http://www.s-vision.com/
Return to Top
How to determine which Video for Windows decompressors are installed on a PC?
In the SYSTEM.INI file, there is a section [drivers] which will contain
some lines as follows:
[drivers]
VIDC.MSVC=msvidc.drv
VIDC.YVU9=isvy.drv
VIDC.IV31=indeor3.drv
VIDC.RT21=indeo.drv
VIDC.CVID=iccvid.drv
VIDC.MRLE=msrle.drv
AVI files contain a four character code (such as 'IV31' or 'CVID')
in the stream header for the video stream. This four character
code identifies the video compressor used for the video stream.
For example, 'CVID' is the identifier for Cinepak (formerly Compact
Video) compression.
Video for Windows prefixes the four character code with VIDC. and
uses it to look up the video decompressor driver in SYSTEM.INI
iccvid.drv is the driver for Cinepak in the example above.
Note: These are 16-bit drivers. Windows 95 adds a section [drivers32]
for 32 bit drivers. There are 32 bit versions of the Video for
Windows drivers. See below (and notice that the 32 bit drivers have
different names from the 16 bit drivers).
[drivers32]
vidc.cvid=iccvid.dll ; Cinepak for Windows 32
vidc.iv31=ir32_32.dll
vidc.iv32=ir32_32.dll
vidc.msvc=msvidc32.dll
vidc.mrle=msrle32.dll
WINDOWS 95
In Windows 95:
(1) Open the Control Panel
(2) Double click on the Multimedia Icon (applet)
(3) Select the "Advanced" Tab
(4) Under the Multimedia Drivers icon, double click on the Video Compression Codecs icon
to open it. This gives a list of installed video codecs.
Return to Top
How to determine which codec was used to compress an AVI file
LOW LEVEL WAY THAT WORKS ON ANY OPERATING SYSTEM WITH A FILE EDITOR!
A low level way to find out is to view the avi file with an editor,
for example the standard EDIT command in DOS will work. Search for
the four character code vids (usually lower case). vids indicates a
VIDeo Stream. vids is immediately followed by the four character code
for the compressor used for the AVI file. For example, a full frames
(uncompressed) AVI will contain the string:
vidsDIB
An AVI compressed using Microsoft Video 1 will contain the string:
vidsmsvc
And so forth.
See elswhere in this overview for information on the Microsoft Four Character Codes.
WINDOWS 95
In Windows 95 (or Windows NT 4.0):
Right click on the avi file's icon.
This brings up a menu of items.
Select Properties.
Click on the Details tab in the Properties sheet.
Look under Video Format in the Details. This will list the
compression used. The compression is identified using an explanatory
human-readable string such as "16 x 16, 24 Bits, 8 Frames, 60.150
Frames/Sec, 76 KB/Sec, Uncompressed". The Microsoft Four Character
Code is not used.
NOTE: Windows 95 needs to have the Video for Windows codec installed
to correctly identify the codec used in the AVI file. If you have
an AVI that Windows 95 can't play because the codec is not
installed, you will have to use another method.
Return to Top
Which AVI video compressor is best?
"Best" depends on what the user is trying to do. Selection of a
video codec depends on several variables: time to encode the video,
how widely known and available the video codec is, compression ratios
that can be achieved for a target subjective quality level. The
Performance of AVI Codecs section gives
detailed information on the performance, compression ratios, video
quality, etc. of AVI video codecs.
Cinepak is the most widely used AVI video codec. Cinepak reportedly
provides the fastest playback of video. While Indeo 3.2 provides
similar or slightly superior image quality for same compression, Indeo
decompression is much more CPU intensive than Cinepak. Cinepak was
originally developed for the Mac and licensed to Apple by SuperMac.
It is now free with Video for Windows. It is also free with Apple's
QuickTime.
There are at least three Cinepak codecs in existence:
Cinepak by SuperMac (the original, 16 bit)
Cinepak by Radius (newer, better?, 16 bit)
Cinepak by Radius[32] (32 bit version of Radius Cinepak, shipped with Windows 95)
Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using the Radius
codec for superior results when generating AVI files from TrueSpace.
Cinepak is the best codec to use to insure ease of playback. Few people
will have problems or need to install special codecs or software
to play an AVI compressed with Cinepak.
Cinepak is based on Vector Quantization and Frame Differencing to
achieve video compression. Other technologies such as the
Block Discrete Cosine Transform and Motion Compensation can achieve
superior compression (smaller files for the same subjective visual
quality).
Codecs that beat Cinepak
H.263 (probably H.261) Block DCT/Motion Compensation
MPEG-4 Video Verification Model Block DCT/Motion Compensation
Indeo Video Interactive (Indeo 4.x) "hybrid wavelet"
VDONet's VDOWave Discrete Wavelet Transform/Motion Compensation
Iterated System's RealVideo or ClearVideo Fractal Compression
Although not integrated into AVI, the MPEG-1 digital video standard
with IPB frames outperforms Cinepak.
The block DCT/Motion Compensation based codecs seem to perform 1.5 - 2.0
times better than Cinepak. VDOWave, a wavelet based codec, seems somewhat
better than this.
Return to Top
Performance of AVI Codecs
How do the Video Codecs Perform on Typical Video?
To test the performance of the many Video for Windows codecs, I
created a ten second video of myself using the U.S. Robotics
Bigpicture video capture card which is based on the Brooktree Bt848
chip. I am talking, picking up a microphone, and waving my hands
against an essentially static background. This sequence was captured
at: 30 frames per second, 320 by 240 pixels, with 24 bit RGB color, no
frames dropped during video capture. Note that 320 by 240, RGB 24, at
30 frames per second is similar to a single field of NTSC television
video and to the spatial resolution and frame rates of the successful
VideoCD products based on MPEG-1 digital video compression.
I then compressed the video using different codecs and Microsoft's VidEdit
1.1 video editor.
A table of results follows. Except where noted, the video
resembles the original uncompressed video closely. In case where the
video was significantly degraded, this is noted IN CAPS.
The encoders for most codecs have an adjustable quality factor,
frequently displayed as a value between 0 and 100. A higher quality
factor means the compressed video looks better but has a higher
bitrate, a lower compression ratio. There is a trade-off between
quality and bitrate. In the technical literature on image and video
compression this is known as the rate-distortion function R(D). In
the table below, the entries give the quality factor used to encode
the test video where appropriate.
Results:
Codec File Size Compression Ratio/
Bitrate
--------------------------------------------------------------------------
Raw 24 bit RGB (Full Frames Uncompressed) 66.187 MB 1:1 / 53 Mbps
30 frames per second
320 by 240 pixels
a talking head with some hand waving
Radius Cinepak (32-bit) 6.92 MB 9.6:1 / 5.5 Mbps
Quality Factor 100, keyframe every 15 frames
Compression Technology: Vector Quantization
Intel Indeo 5.1 (32-bit) 4.41 MB 15.0:1 / 3.5 Mbps
Quality Factor 85, keyframe every 15 frames
Compression Technology: Wavelet
Intel Indeo 5.1 (32-bit) 0.98 MB 67.8:1 / 784 Kbps
Quality Factor 50, keyframe every 15 frames
Compression Technology: Wavelet
Intel Indeo 5.1 (32-bit) 0.81 MB 81.7:1 / 648 Kbps
Quality Factor 25, keyframe every 30 frames
Compression Technology: Wavelet
Intel Indeo 4.3 (32-bit) 2.46 MB 26.9:1 / 2 Mbps
Quality Factor 85
Compression Technology: "Hybrid Wavelet"
Intel Indeo R3.2 (32-bit) 3.93 MB 16.8:1 / 3.1 Mbps
Quality Factor 65, keyframe every 4 frames
Version 3.24.15.03
Compression Technology: Vector Quantization
Microsoft Video 1 (32-bit) 3.16 MB 20.7:1 / 2.5 Mbps
Microsoft Video 1 Compressor Version 1.0
LOW QUALITY - NOTICABLY GRAINY
Microsoft MPEG-4 (32-bit) 0.625 MB 105.9:1 / 500 Kbps
MPEG-4 Video High Speed Compressor
keyframe every 3600 frames
Compression Control 0
Data Rate 128 Kilobits/second
LOW QUALITY - BLOCKING ARTIFACTS
Compression Technology: Block Discrete Cosine Transform
Motion Compensation
Intel Indeo Raw R1.2 (32-bit) 24.6 MB 2.7:1 / 19.7 Mbps
Version 1.20.15.01
Intel I.263 H.263 (32-bit) 0.764 MB 86.6:1 / 612 Kbps
keyframe every 15 frames
Quality Factor 50 %
LOW QUALITY - BLOCKING ARTIFACTS
Compression Technology: Block Discrete Cosine Transform
Motion Compensation
Intel I.263 H.263 (32-bit) 1.99 MB 33.2:1 / 1.6 Mbps
keyframe every 15 frames
Quality Factor 100 %
Compression Technology: Block Discrete Cosine Transform
Motion Compensation
Brooktree YUV 411 Raw 32.6 MB 2.0:1 / 26 Mbps
BtV MediaStream
Verson: 2.01
With a 160 by 120, 30 frames per second, 239 frame (7.996) second, 24
bit color video "Space Shuttle" sequence, from a NASA promotional
video showing the launch of the space shuttle and some crowds watching
and cheering. Here I was able to calculate and report the Peak Signal to Noise Ratio (in dB, decibels), an
objective measure of image and video quality.
Codec File Size Compression Ratio/
Bitrate/PSNR
-----------------------------------------------------------------------
Full Frames (Uncompressed) 13.1 MB 1 : 1 / 13.5 Mbps
24 bits, 160 x 120, 30 fps / INFINITE
Cinepak Codec by Radius [32] 0.85 MB 15.9 : 1 / 848 Kbps
Version 1.8.0.12 / 31.08 dB
Key frame every 15 frames
Quality Factor 100
(DEFAULT ENCODING PARAMETERS)
Cinepak Codec by Radius[32] 0.78 MB 17.7 : 1 / 780 Kbps
Version 1.8.0.12 / 30.49 dB
Key Frame every 15 frames
Target Data Rate 100 KBytes/sec
Quality Factor 100
Cinepak Codec by Radius[32] 0.42 MB 32.93 : 1 / 420 Kbps
Version 1.8.0.12 / 27.087 dB
Key Frame every 15 frames
Target Data Rate 50 KBytes/sec
Quality Factor 100
VISIBLE BLOCKING
Cinepak Codec by Radius[32] 0.23 MB 59.6 : 1 / 231 Kbps
Version 1.8.0.12 / 23.762 dB
Key Frame every 15 frames
Target Data Rate 25 KBytes/sec
Quality Factor 100
HEAVY BLOCKING/UNACCEPTABLE VIDEO
Intel Indeo 5.10 0.993 MB 13.2 : 1 / 992 Kbps
Key frame every 15 frames / 32.43 dB
Quality Factor 85
(DEFAULT ENCODING PARAMETERS)
Intel Indeo 5.10 0.22 MB 59.6 : 1 / 216 Kbps
Key frame every 15 frames / 29.6 dB
Quality Factor 50
RINGING ARTIFACTS JUST VISIBLE
Intel Indeo 5.10 0.177 MB 74 : 1 / 176 Kbps
Key frame every 15 frames / 28.4 dB
Quality Factor 25
RINGING ARTIFACTS
Intel Indeo 5.10 0.158 MB 82.9 : 1 / 152 Kbps
Key frame every 15 frames / 27.82 dB
Quality Factor 10
RINGING ARTIFACTS
Intel Indeo Video Interactive[32] 1.564 MB 8.8 : 1 / 1.564 Mbps
Indeo V 4.11.15.62 / 28.686 dB
Key frame every 15 frames
Target Data Rate 1687 KBytes/sec
Quality Factor 85
(DEFAULT)
Intel Indeo Video Interactive[32] 0.732 MB 18.9 : 1 / 732 Kbps
Indeo V 4.11.15.62 / 28.284 dB
Key frame every 15 frames
Target Data Rate DISABLED
Quality Factor 85
Intel Indeo Video Interactive[32] 0.297 MB 46.5 : 1 / 297 Kbps
Indeo V 4.11.15.62 / 26.622 dB
Key frame every 15 frames
Target Data Rate DISABLED
Quality Factor 50
BLOCKING AND RINGING ARTIFACTS
Intel Indeo Video Interactive[32] 0.256 MB 53.9 : 1 / 256 Kbps
Indeo V 4.11.15.62 / 25.389 dB
Key frame every 15 frames
Target Data Rate DISABLED
Quality Factor 25
HEAVY BLOCKING AND RINGING ARTIFACTS/UNACCEPTABLE
Microsoft Video 1 5.198 MB 2.7 : 1 / 5.198 Mbps
Key frame every 15 frames / 32.209 dB
Quality Factor 100
SLIGHTLY GRAINY
Microsoft Video 1 0.79 MB 17.5 : 1 / 790 Kbps
Key frame every 15 frames / 30.286 dB
Quality Factor 75 (DEFAULT)
BANDING AND BLOCKING
Microsoft Video 1 0.17 MB 82.8 : 1 / 166 Kbps
Key frame every 15 frames / 23.915 dB
Quality Factor 50
VERY BLOCKY/UNACCEPTABLE
Microsoft Video 1 0.08 MB 163.7 : 1 / 84 Kbps
Key frame every 15 frames / 18. 524 dB
Quality Factor 25
VERY VERY BLOCKY/UNACCEPTABLE
With a 160 by 120 pixel, 15 frames per second, 24 bit color version of
the "Talking Head" 10 second video sequence, created by downsampling in
space and time with Microsoft VidEdit 1.1
Codec File Size Compression Ratio/
Bitrate
------------------------------------------------------------------------
Full Frames Uncompressed 8.53 MB 1:1 / 6.816 Mbps
24 bit RGB
160 x 120 pixels
15 frames per second
Cinepak from Radius (32 bit) 1.20 MB 7.1:1 / 960 Kbps
Version 1.10.0.6
Quality Factor 100
Keyframe every 15 frames
Intel Indeo 4.5 (32 bit) 0.677 MB 12.6:1 / 541 Kbps
Quality Factor 85
Keyframe every 15 frames
Intel Indeo R3.2 (32 bit) 0.98 MB 8.7:1 / 784 Kbps
Version 3.24.15.03
Quality Factor 65
Keyframe every 4 frames
Microsoft Video 1 0.947 MB 9:1 / 758 Kbps
Quality Factor 75
SOME BLOCKING ARTIFACTS
Intel Indeo Raw 1.2 3.25 MB 2.6:1 / 2.6 Mbps
Intel I.263 H.263 0.67 MB 12.8:1 / 535 Kbps
Intel Indeo 5.10 (32 bit) 0.973 MB 8.8:1 / 778 Kbps
Quality Factor 85
Keyframe every 15 frames
Intel Indeo 5.10 (32 bit) 0.367 MB 23.2:1 / 294 Kbps
Quality Factor 50
Keyframe every 15 frames
Intel Indeo 5.10 (32 bit) 0.339 MB 25.2:1 / 271 Kbps
Quality Factor 25
No fixed keyframes
LOW QUALITY - BLURRY
Brooktree YUV 411 Raw 4.42 MB 1.9:1 / 3.536 Mbps
Return to Top
Which Video for Windows Codecs are Available for QuickTime on Apple Macintosh?
As of June 24, 1998, this is an incomplete list:
Cinepak (formerly Apple Compact Video)
The Video for Windows 1.1 Apple Macintosh utilities include
QuickTime system extensions for:
Microsoft Video 1
Microsoft Full Frames (uncompressed)
Microsoft RLE (Run Length Encoding)
Intel provided a QuickTime system extension for Intel Indeo
3.2. As of June 24, 1998 this was available at:
http://developer.intel.com/ial/indeo/video/driver.htm
As of June 24, 1998 Intel did NOT provide QuickTime versions
of Indeo 4.x or 5.x for the Apple Macintosh. Intel did provide
a version of Indeo 4.4 for QuickTime for Windows.
Return to Top
Microsoft Four Character Codes (FOURCC)
A Four Character Code or FOURCC is a four byte code defined by
Microsoft as part of Video for Windows to identify various types
of video data.
Microsoft defined FOURCC's to uniquely identify pixel layouts and
video compressor types in Video for Windows. For example, the FOURCC
'CVID' identifies the Cinepak (formerly Compact Video) video
compressor. AVI files contain the FOURCC for the video compressor in the
video stream header.
In addition to codecs, Four Character Codes identify the pixel layouts
used in uncompressed images and video. For example, codes such as
'YUY2' identify layouts of pixels in YUV space (as opposed to RGB).
These codes are used in interfacing with graphics cards. For example,
the S3 ViRGE/VX chip supports the YUY2 pixel layout. YUY2 is popular
because it refers to the 4:2:2 format used in CCIR-601 (D1) digital video.
Video for Windows, Display Control Interface (DCI), and Direct Draw
all use FOURCC's.
Incomplete List of Four Character Codes for Video for Windows Codecs
(This is followed by a list of Codes Registered with Microsoft)
DIB Full Frames (Uncompressed)
RGB Full Frames (Uncompressed)
RAW Full Frames (Uncompressed)
0x00000000 Full Frames (Uncompressed)
0x00000000 indicates the hexadecimal value of the Four Character
Code is zero. A Four Character Code 'AAAA' has hexadecimal value
0x41414141 where 0x41 is the ASCII code for 'A'.
Some video capture and editing products will use the non-standard
FOURCC 0x00000000 for uncompressed AVI video instead of the easier to
understand 'DIB ' or 'RGB ' or 'RAW '.
MSVC or CRAM or WHAM Microsoft Video 1
MRLE Microsoft Run Length Encoding
IV31 Indeo 3.1/3.2
IV32 Indeo 3.1/3.2
CVID Cinepak (Radius)
ULTI Ultimotion (IBM)
MJPG Motion JPEG (Microsoft, Paradigm Matrix, video capture companies)
IJPG Intergraph JPEG
CYUV Creative YUV
YVU9 Intel Indeo Raw YUV9
XMPG Editable (I frames only) MPEG (Xing)
MPGI Editable MPEG (Sigma Designs)
VIXL miro Video XL
MVI1 Motion Pixels
SPIG Radius Spigot
PGVV Radius Video Vision
TMOT Duck TrueMotion S
DMB1 Custom Format Used by Matrox Rainbow Runner. This
appears to be a type of Motion JPEG
IV41 Indeo Interactive (Indeo 4.1 from Intel)
IV50 Indeo 5.x, including 5.0, 5.06, and 5.10
UCOD ClearVideo (Iterated Systems)
VDOW VDOWave (VDONet)
SFMC Surface Fitting Method (CrystalNet)
QPEG Q-Team Dr.Knabe 's QPEG video compressor
H261 H.261
M261 Microsoft H.261
VIVO Vivo H.263
M263 Microsoft H.263
I263 Intel "I.263" H.263
MPG4 Microsoft MPEG-4
LIST OF CODES REGISTERED WITH MICROSOFT ( July 19, 1999 )
Compressor Code 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.
Compressor Code 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
Extensive information on Microsoft's Four Character Codes (FOURCC) may be
found at
Dave Wilson's The Almost Definitive FOURCC
Definition List
Microsoft maintains a web page of FOURCC's for video, both pixel
layouts and compression, with the FOURCC's registered with Microsoft.
http://www.microsoft.com/hwdev/devdes/fourcc.htm
Microsoft has defined 128-bit (16 byte) identifiers known as
Globally Unique Identifiers (GUIDs) to identify virtually everything
in the Microsoft Universe. Microsoft has defined mappings from
the Four Character Codes used for video and audio codecs to GUID's.
GUIDs for Video for Windows Codecs
Return to Top
Video Compression Technologies
There are several underlying technologies used by different Video for
Windows Codecs. For example, Indeo 3.2 and Cinepak both use Vector
Quantization. The international standards MPEG-1, MPEG-2, MPEG-4,
H.261, and H.263 all use a combination of the block Discrete Cosine
Transform (DCT) and motion estimation/compensation. Several of the
New Wave codecs use wavelet transform based image compression (the
Discrete Wavelet Transform or DWT). Other technologies include
Fractal Image Compression, represented by Iterated Systems.
Some general comments on image and video compression:
(1) Image compression may be lossless where no information is
lost during the compression process. The image produced by
the decompression (also known as decoding) process is identical
bit by bit with the original image. The widely used GIF format
is a lossless image and video (GIF89a or animated GIF) compression
format.
LOSSLESS COMPRESSION
(2) Image compression may be lossy where information is lost during
the compression process. These schemes exploit limitations of the
human visual system. Some errors are undetectable by the human
eye. Even though two images are different at the bit by bit level, the
human viewer cannot distinguish them. Some errors are detectable by
the human eye but acceptable. Some errors are detectable and very
annoying. The widely used JPEG image compression standard is a lossy
compression scheme.
LOSSY COMPRESSION
(3) Within lossy image and video compression, a compression scheme may
be perceptually lossless, in which case the human viewer cannot
distinguish between the original image or video and the decompressed
compressed image or video which has errors introduced by the lossy
compression. Most lossy image and video compression have some sort of
quality factor or factors. If the quality is good enough, then the image will
be perceptually lossless.
PERCEPTUALLY LOSSLESS COMPRESSION
(3) JPEG's and MPEG's and other lossy compression of images and video
are often compressed beyond the point of perceptual losslessness, but
the compressed images and video are still acceptable to the human viewer.
If the compression and decompression degrades the image in a way that
is very similar or identical to the natural degradation of images that might
occur in the world then the human visual system will not object greatly.
Loss of fine detail in an image is often acceptable because humans
perceive objects in the natural world with widely varying levels of
detail depending on how close the human viewer is to the object and
whether the human viewer is looking directly at the object or not.
The human viewer sees less detail if an object is further away.
When a human viewer looks directly at an object, the viewer uses a
small very high resolution part of the retina. If an object is to one
side of the direction of view, the viewer is using lower resolution
parts of the retina. Human beings are also used to certain natural
forms of degradation such as rain, snow, and fog.
Note that in all these natural viewing situation, the human viewer
will still perceive sharp edges and lines in an image regardless of
the level of detail. The human viewer will usually perceive the
objects as the same object despite the variations in level of detail.
A horse is a horse is a horse.
NATURALLY LOSSY COMPRESSION
(4) Sufficiently low quality lossy compression will introduce visual
artifacts that are highly annoying to the human viewer. An example
is the blocking artifacts visible in highly compressed MPEG video and
other block Discrete Cosine Transform based image compression codecs.
At some point the lossy compression will introduce artifacts that are
very unnatural and are perceived as new objects in the scene or spurious
lines within the image.
The human visual system is very sensitive to lines or edges. One of its
main functions appears to be to detect and characterize physical
objects such as other people, potential threats such as predators, food
plants, and other things. Objects in the visual system are dilineated by
edges. Anything such as a codec algorithm that destroys or creates an
edge in an image is noticed, particularly if the edge is interpreted as
the border of an object by the human visual and cognitive system.
UNNATURAL LOSSY COMPRESSION
All of the widely used video codecs are lossy compression algorithms.
At sufficiently high compression most of them will have problems with the
edges in the image. Vector quantization, block Discrete Cosine Transform,
and wavelet based image and video compression inherently do not
mathematically represent the intuitive notion of an edge or line.
THE POINT: In using and selecting video codecs, the author of an
AVI file (or a compressed digital video in general) needs to achieve
NATURALLY LOSSY COMPRESSION or better. Once the compression
introduces noticable AND unnatural artifacts, the video is of very
limited use even in cases where some features and objects are
recognizable.
A basic description of video compression technologies follows. I have
tried to avoid the dense mathematics found in most of the technical
video and image compression literature.
Return to Top
Run Length Encoding
VIDEO CODECS THAT USE RUN LENGTH ENCODING
Microsoft RLE (MRLE)
Run length encoding is also used to encode the DCT coefficients in
the block Discrete Cosine Transform (DCT) based international
standards MPEG, H.261, H.263, and JPEG.
STRENGTHS AND WEAKNESSES
1. Works for bilevel or 8 bit graphic images such as cel animation.
2. Not good for high resolution natural images.
OVERVIEW
Run length encoding encodes a sequence or run of consecutive
pixels of the same color (such as black or white) as a single
codeword.
For example, the sequence of pixels
77 77 77 77 77 77 77
could be coded as
7 77 (for seven 77's)
Run length encoding can work well for bi-level images (e.g.
black and white text or graphics) and for 8 bit images, particularly
images such as cel animations which contain many runs of the same
color.
Run length encoding does not work well for 24 bit natural images
in general. Runs of the same color are not that common.
Return to Top
Vector Quantization
VIDEO CODECS THAT USE VECTOR QUANTIZATION
Indeo 3.2
Cinepak
Indeo 3.2 and Cinepak both use vector quantization. As with most
digital video, Indeo and Cinepak work in the YUV color space (not RGB
for example).
STRENGTHS AND WEAKNESSES
1. The encoding process is computationally intensive. Still cannot
be done in real time without dedicated hardware.
2. The decoding process is very fast.
3. Blocking artifacts at high compression.
4. Generally, block Discrete Cosine Transform and Discrete Wavelet
Transform based image compression methods can achieve higher compression.
OVERVIEW
The basic idea of Vector Quantization based image compression is to
divide the image up into blocks (4x4 pixels in YUV space for Indeo and
Section 4 of 14 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14
© allanswers.org | Terms of use