Technical review

TOP

Technical specifications

Settings

Decompression

Compression

Fast integer Fast integer method. This method is the fastest but considerably less accurate than the other two; its use is not recommended if high quality is a concern.
Integer Slow but accurate integer algorithm.
Float Floating-point method. This method is slightly more accurate than the 'slow' integer method.
MMX If grayed MMX is not detected.
If checked, MMX optimizations are used.

MMX optimizations :

  • Inverse DCT and dequantization on fast integer and integer methods.
  • Upsampling, color conversion and merged upsampling and color conversion for all methods (even with fancy upsampling).
If grayed MMX is not detected.
If checked, MMX optimizations are used.

MMX optimizations :

  • Forward DCT management and quantization on fast integer and integer methods.
Fancy upsampling If checked, do careful upsampling of chroma components. If unchecked,a faster but sloppier method is used.  The visual impact of the sloppier method is often very small.

N/A

3DNow!

N/A

If grayed 3DNow! is not detected.
If checked, 3DNow! optimizations are used.

3DNow! optimizations :

  • Forward DCT on float method.
Enable codec If checked, the codec is enabled, if not it is disabled.
User FourCC If checked, the text in the edit box is used as the default FourCC for both compression and decompression.
  • Matrox Rainbow Runner users should check it and type dmb1 in the edit box if nescessary.
Enabled If checked, decompression is enabled, if not the codec reject every query for decompression. If checked, compression is enabled, if not the codec reject every query for compression.
Support Interleave Apply only if height is more than 288.

If checked, decompress and display 2 interleaced fields per frame.

If unchecked decompress and display only the first field (odd lines). Odd lines are duplicated to fill even lines.

Apply only if height is more than 288.

If checked, compress 2 fields per frame (2 JPEG images are stored, one per field, for each frame).

If unchecked compress and srore only the first field.

Invert Field order Odd lines become even lines and even lines becomes odd lines.

v091.gif (9669 octets)

(*) Fast integer method for compression produce blocky artifacts if MMX is checked, use integer or float method for compression to avoid artifacts.

Supported color spaces

Decompression (ouput)(*)

Compression (input)

RGB 16 bits (555 & 565)
24 bits
32 bits
16 bits (555 & 565)
24 bits
32 bits
YUV (DirectDraw) YUY2
UYVY

YV12
I420
IYUV
YVU9 **
IF09 **
CLPL
YUY2
UYVY

YV12
I420
IYUV
Y41P (btYUV)
VYUY

(*) All color space conversions are MMX optimized !
(**) You need to set IF09=1 in M3JPEG.INI


Test & compatibility

Tested M-JPEG hardware codec

Foreign stream decompressed by Morgan Multimedia MJPEG codec

Morgan Multimedia MJPEG stream decompressed by foreign codec

Matrox Rainbow Runner OK
(Tested in every resolutions.)
OK
(Tested in every resolutions supported by the RR.)
Miro/Pinnacle DC30 OK
(Tested in 384x288 & 720x540, but it should work in other resolutions, send me short AVI clips).
Not tested
Fast Screen Machine II + MJPEG add-on OK
(Tested in 368x276).
Not tested
Miro DC1/DC10 OK Not tested
Truevision Bravado 1000 OK Not tested
Iomega BUZ OK OK
Orchid Vidiola Premium OK Not tested
Fast AV Master OK Not tested
...

(*) 4:1:1 MJPEG streams are always decompressed with 'Fancy upsampling' even if it is unchecked.

Tested capture cards without M-JPEG hardware codec

Morgan Multimedia MJPEG codec real-time compression

Morgan Multimedia MJPEG codec decompression to accelerated output

ATI all In Wonder Pro OK OK
Miro PCTV OK N/A
Happauge WinTV OK N/A
ASUS V3400TNT/TV OK OK
Coreco Bandit OK OK
...    

If your capture software does not allow real-time compression, you can use VidCap.

You can download it here for free.

Unzip VidCap.exe and run it.
Select the 'options' menu,
then 'compression...'
choose the 'Morgan Multimedia 32-bits MJPEG codec'
start capture...

To get the best results with VidCap and your card
select  the 'options' menu
then 'Video Format...' choose YUY2 or btYUV (Y41P) or YV12 and see wich one
gives you the best result.

Tested M-JPEG software codec

Foreign stream decompressed by Morgan Multimedia MJPEG codec

Morgan Multimedia MJPEG stream decompressed by foreign codec

Paradigm Matrix codec OK
(Tested in every resolutions.)
OK
(Tested in every resolutions.)
MainActor integrated MJPEG codec OK for 'Software MJPEG' (4:1:1)(*)
OK for 'Hardware MJPEG' (4:2:2)
Not tested
QuickTime 'jpeg' file converted to AVI with Intel's SmartVid OK (4:1:1)(*) Not tested
...    

Tested software

Morgan Multimedia MJPEG codec decompression

Morgan Multimedia MJPEG codec compression

Adobe Premiere 4.2 & 5.0 OK OK
Ulead Media Studio 5.0 OK OK
MS Media Player (classic) OK N/A
MS Explorer AVI Property OK N/A
MS Media Player 2 OK N/A
MS ActiveMovie OK N/A
MS DirectShow OK OK
Cornell's CU-SeeMe OK OK
MS VidCap & VidCap32 N/A OK
...    

Take a look at The MJPEG-Software-Codec Guide by Uwe Roeder, a very interesting text about using software codecs coexisting with hardware codec. The mentioned hardware is the Rainbow Runner, but there's many informations for other hardware users.

FourCC issue

MJPEG hardware in the PC

Warning on installing the Morgan Multimedia MJPEG codec(*)

MJPG The most common (Fast, Miro, Iomega, ...).

If your hardware handle the 'MJPG' FourCC, you should find the key "vidc.mjpg=..." in the  [Drivers32] section of the SYSTEM.INI file.

Before installation, edit the SYSTEM.INI file and add a ; (semilicon) before the line "vidc.mjpg=..." of the  [Drivers32] section.

Then install the MM-MJPEG software codec.

To reactivate the hardware codec, remove the previouly added ; and add a ; before the line vidc.mjpg=m3jpeg32.dll

Use a similar method to reactivate the software codec.

dmb1 Matrox Rainbow Runner. You can install the MM-MJPEG software codec.

But before adding the dmb1 support, edit the SYSTEM.INI file and add a ; (semilicon) before the line "vidc.dmb1=..." of the  [Drivers32] section.

Add a line vidc.dmb1=m3jpeg32.dll in this section.

To reactivate the hardware codec, remove the previouly added ; and add a ; before the line vidc.dmb1=m3jpeg.dll

Use a similar method to reactivate the software codec.

jpeg No known hardware, used to playback QuickTime (4:1:1) 'jpeg' streams.

N/A

(*) This apply only for Windows 95/98.
For Windows NT, DO NOT install the codec on the machine containing a capture device that handles 'MJPG'.
Except if you are using a Matrox Rainbow Runner wich handles neither 'MJPG' nor 'dmb1' FourCC under NT.
It seems that the DC30 does not install an 'avicap' driver under NT, so maybe could you use the software codec coexisting with the hardware device but it was not tested yet. Email me if you try it ...
If you are sure of what you're doing, you can modify the provided OEMSETUP.INF file before installation.

Benchmark(*)

Morgan Multimedia MJPEG codec v0.90

Paradigm Matrix MJPEG codec V1.11N

RGB 16 555 NoDraw : 151.1 fps
DrawDib : 110.7 fps
NoDraw : 89.6 fps
DrawDib : 85.5 fps
RGB 16 565 NoDraw : 139.9 fps
DrawDib : 110.7 fps
Not tested
RGB 24 NoDraw : 156.8 fps
DrawDib : 111.3 fps
NoDraw : 85.5 fps
DrawDib : 81.8 fps
RGB 32 NoDraw : 156.8 fps
DrawDib : 110.7 fps
NoDraw : 85.9 fps
DrawDib : 85.5 fps
YUY2 NoDraw : 211.1 fps (v0.91)
DirectDraw : 126.2 fps (v0.91)
NoDraw : 121.8 fps
DirectDraw : 85.5 fps
UYVY NoDraw : 121.8 fps
DirectDraw : N/A on Mill II
NoDraw : 117.6 fps
DirectDraw : N/A on Mill II

(*)

  • Tested for decompression only.

  • Benchmark program :
    Modified DirectDraw sample called Avidd.
    Test the frame rate with 3 methods.
    1 - NoDraw : No display is performed, it give you the pure frame rate of the codec.
    2 - DirectDraw : Display with DirectDraw (YUV modes only).
    3 - DrawDib : Windows choose the best display mode, depending on the display settings and the codec capabilities.

  • AVI file : 320 x 240, 24 Bits, 207 frames, 30 fps, 167 Kb/Sec, MJPEG compressed @ 50.

  • PC :
    MB asus P2B 440BX bus @ 103Mhz
    PII 333 oveclocked @ 412Mhz  (4x103)
    128Mb sdRAM
    Matrox Millenium II AGP 4Mb + Rainbow Runner (not used to decomp 'MJPG' ;-) it only decomp 'dmb1'...)
    Seagate Medialist 6.4Gb UDMA2 + Intel PIIx Bus Master
    Windows 95 OSR2.5 + DirectX 6 + Direct Media 5.2b

  • I'm still looking for a more pro and standard benchmark program for AVI codecs ... If you know one, email me at m3jpeg@morgan-multimedia.com


History list :

v0.90

  • First release.

v0.91

  • Fix the 'float' method crash on compression.
  • Fix the 'display at 0,0' bug with Premiere and Media Studio.
  • Fix a bug that came with transitions in Premiere and Media Studio when one of the video is interleaved and the other is not.
  • Improve multiples instances support.
  • Allow to Enable/Disable the codec for decompression and/or compression.
  • Improve speed.

v0.91a

  • Fix a bug on preview and output with Premiere (in v0.91).

v0.91d

  • Fix a bug with float compression on AMD K6-2.
  • Add a 'user FourCC' option to handle and compress in other format than 'mjpg' ('dmb1'. 'MJPG', ...).
  • Add an 'Enable codec' option that allow to enable/disable the entire codec.

v0.92

  • Allow to playback MM streams on Iomega BUZ (and I think on Miro DCxx and Truevision cards).
  • Default FourCC is now MJPG rather than mjpg (OpenDML specs.)
  • Fix the Enable/Disable settings for decompression and/or compression.
  • Support default quality settings (set to 75).
  • Support data rate settings from video editing s/w.
  • Works with Cornell's CU-SeeMe.
  • Add an MMTray.exe utility that allow to enable/disable the codec (right click) or invoke the codec configuration panel (left click).

v0.93

  • Add RGB 16-bits (555 & 565), RGB 32-bits, YUY2 and UYVY input format support for compression.
  • Fix a bug with data rate checking on compression.

v0.94

  • Fix a bug in Premier 5.1 with the Miro DC10.
  • Fix a bug in YUY2 and UYVY compression mode (image was mirrored).
  • Speed up compression (more MMX code !!!).
  • Add super fast YV12, I420, Y41P, VYUY (btYUV), input format support to improve realtime compression (designed for capture cards that do not perform hardware compression, ATI All In Wonder Pro, Brooktree bt848 chipset based cards like Hauppauge WinTV or Miro/Pinnacle PCTV, ...).
  • Add YV12, I420 support for output.

v0.95

  • The trial time out is now 1/Apr/1999

v0.96

  • Add advanced setting to support Targa 2000k Pro card (need to set EmitAPP0_AVI1_14=1 in M3JPEG.INI).
  • Add advanced setting to fix JPEG header of non-standard MJPEG files (need to set FixSOF0=1, FixSOS=1, FixDQT=1 in M3JPEG.INI).

v1.0

  • Add YUV9, IF09 support for output (need to set IF09=1 in M3JPEG.INI).
  • Add super fast 4:2:0 compression (640x480 @ 25fps on a PII 400, need to compress from 4:2:0 YUV input format like YV12).
  • Add super fast 4:2:0 playback (640x480 @ 25fps on a PII 400, need to playback a 4:2:0 compressed file).
  • Activate 'Support interleave' setting.
  • Activate 'Invert field order' setting.
  • Support registration key and add a registration dialog box.
  • The trial time out is now 1/Jul/1999.

v1.10

  • Improved MMX code on fast integer compression.
  • Improved 3DNow! code on float compression.
  • Improved memory management.
  • Accidentally remove advanced setting to support Targa 2000k Pro card (EmitAPP0_AVI1_14=1 in M3JPEG.INI).
  • Accidentally remove advanced setting to fix JPEG header of non-standard MJPEG files (FixSOF0=1, FixSOS=1, FixDQT=1 in M3JPEG.INI).
  • The trial time out is now 1/Oct/1999.

v1.10a

  • Restore advanced setting to support Targa 2000k Pro card (EmitAPP0_AVI1_14=1 in M3JPEG.INI).
  • Restore advanced setting to fix JPEG header of non-standard MJPEG files (FixSOF0=1, FixSOS=1, FixDQT=1 in M3JPEG.INI).
  • The trial time out remains 1/Oct/1999

v1.10b

  • Fix the 'gray capture' bug in new integer MMX compression.
  • Add new advanced setting to fix JPEG header of 'Orchid Vidiola Premium' non-standard MJPEG files (FixMarkerLen=1, FixDRI=21 in M3JPEG.INI).
  • The trial time out remains 1/Oct/1999.

v1.20

  • Improved MMX code on fast integer YUY2 compression (50% faster).
  • The trial time out is now 1/Jan/2000.

v1.20a

  • Fix RGB input mode bug for compressor (gray frames in Premiere and MSP).
  • Fix quality 100 bug for compressor.
  • The trial time out remains 1/Jan/2000.

v1.20b

  • Add missing EMMS instruction (thanx to Avery Lee author of VirtualDub).
  • The trial time out remains 1/Jan/2000.

v1.20c

  • Fix quality 100 bug for YUY2 input format.
  • Fix flushing bitstream routine (unable to playback Morgan MJPEG streams on hardware codecs like RR or BUZ).
  • The trial time out remains 1/Jan/2000.

v1.30

  • The trial time out is now 1/Apr/2000.

v1.40

  • The trial time out is now 1/Jul/2000.

v1.50

  • Fix a bug for a specific image size on compression.
  • The trial time out is now 1/Sep/2000.

v2.00 RC1

  • Better decompression quality in 'Fast Integer + MMX' mode.
  • Better YUV to RGB color conversion for decompression in 'Fast Integer + MMX' mode.
  • A lot faster decompression speed without any quality loss in 'Fast Integer + MMX' mode.
  • SMP support for decompression in 'Fast Integer + MMX' mode.
  • Some bug fixes and improvements in compression core.
  • DirectShow filters (Decoder/Encoder).
  • One field (Half width/Half height) decompression option (DirectShow filter/YUY2 mode only).
  • Common .inf installation file for all Windows versions (9x/me/NT4/2K).
  • OEM logo, text, URL and seamless installation capabilities.
  • The trial time out is now 1/Jan/2001

v2.00

  • Fix AMD compression/integer bug.
  • MMtray disabling option added (right double-click to close and desactivate).
  • Uninstall.
  • The trial time out is now 1/Mar/2001.

v2.01

  • The trial time out is now 1/May/2001.

v2.02

  • The trial time out is now 1/july/2001.

v2.03

  • Non-aligned screen width on 16 pixels bug, fixed.
  • M3jpegenc.ax (DirectShow compressor) upgrade, now supports YUY2,RGB15,RGB16,RGB24,RGB32 input formats.
  • M3jpegdec.ax now supports the following options : align CIF height on 16, force YUY2 output, doesn't skip frames.

v2.04

  • Compression bug when the data rate checking is active, fixed. (possible problems with Adobe Premiere, Ulead, CU-SeeMe...).

v2.05

  • A compression bug in 'Fast Integer' mode has been fixed. It occured in Adobe Premiere when the frame width notify in the AVI file header is smaller than the real JPEG images inside the file.

MM Tray

mmtray.gif (1158 octets)

  • if MM Tray does not invoke the MM codec configuration panel, edit M3JPEG.INI to be sure that the value of 'SysFourCC=xxxx' in the [codec] section is the same as the vidc.xxxx=m3jpeg32.dll in the [drivers32] section in the SYSTEM.INI (xxxx is the FourCC e.g. MJPG, dmb1, SJPG, ...).

Top

Help us to extend our 'Tested' list :

email us a report on 'Morgan Multimedia MJPEG codec stream' tested on foreign codec.

email us a SMALL AVI file (<1Mb)
with differents resolutions (height <= 288 & height >288)
Interlaced & not interlaced (1 field & 2 fields / frame).

m3jpeg@morgan-multimedia.com

Here's a list of some hadware that produce Hardware MJPEG AVI capture, but
maybe you have another card  (be sure it produce Motion JPEG streams...):

  • FAST AV Master
  • FAST F60
  • Iomega Buzz
  • Miro DC1
  • Miro DC20
  • Miro/Pinnacle DC30/DC30+
  • Pinnacle DC50
  • Matrox DigiSuite
  • Matrox Rainbow Runner (I've got it ! DO NOT SEND !)
  • Quadrant
  • Reveal VE500
  • Truevision Targa 2000
  • Interware GAVA

Go to the 'Tested list' ...


Send an email to 
webmaster@morgan-multimedia.com for any comment about this web site.
Copyright © 1990-1998 Morgan-Multimedia
Last modification :
16 Mar 2002

  Hit Counter
.