Difference: GhostscriptOrMuPDF (1 vs. 34)

Revision 342020-12-10 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 12 to 12
  Similarly GhostXPS is an XPS parser written on top of the Ghostscript graphics library.
Changed:
<
<
For the rest of this discussion we will just say "Ghostscript" when we actually mean "Ghostscript, GhostPCL and GhostXPS "; everything we say about Ghostscript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "GhostPDL".
>
>
For the rest of this discussion we will just say "Ghostscript" when we actually mean "Ghostscript, GhostPCL and GhostXPS "; everything we say about Ghostscript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "GhostPDL". To make matters more confusing, we have now have an actual product called "GhostPDL" that pulls the functionality from all three together into a single executable.
  If you need the ability to handle EPUB or CBZ input, then you must use MuPDF.
Changed:
<
<
Both MuPDF and Ghostscript can handle PDF and XPS input.
>
>
Both MuPDF and GhostScript (and GhostPDL) can handle PDF input. MuPDF and GhostPDL can both handle XPS input, together with bitmap formats such as JPEG, PNG and TIF.
 
Changed:
<
<
MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. Ghostscript is distributed with PostScript "helper files" to handle JPEG, GIF, MIFF (ImageMagick format) and raw files and can be persuaded to handle other formats using this type of PostScript program.
>
>
Ghostscript is distributed with PostScript "helper files" to handle JPEG, GIF, MIFF (ImageMagick format) and raw files and can be persuaded to handle other formats using this type of PostScript program.
 

Color Management

Changed:
<
<
Currently, MuPDF does not offer any color management options. Therefore if a color managed workflow is required, you need to use Ghostscript. The color management of Ghostscript uses ICC profiles and is extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different color management for object types (text, images and vector graphics) and separations.
>
>
Both MuPDF and Ghostscript offer color managed workflows, both use ICC profiles and (by default) LCMS. The Ghostscript color management options are more extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different color management for object types (text, images and vector graphics) and separations.
 

Output options

Changed:
<
<
If you want to output PostScript, PCL/XL, PDF, or XPS, or you want to output to a MS Windows printer, then you need to use Ghostscript.
>
>
If you want to output high-level PostScript, PCL/XL, or XPS, or you want to output to a MS Windows printer, then you need to use Ghostscript. Both MuPDF and Ghostscript are capable of outputting to PDF, though Ghostscript's PDF generation is more mature. Both MuPDF and Ghostscript can produce PCLm output (basically bitmaps wrapped into PDF format). Both MuPDF and Ghostscript can produce simple bitmap based PCL output too.
 

Printer output

Line: 44 to 44
  The easiest mechanism for outputting to a printer that is not already supported or that cannot be supported using the "uniprint" module is to get Ghostscript or MuPDF to render to a bitmap, and then for convert that bitmap into a data stream for your printer.
Changed:
<
<
Ghostscript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap. Other such conversions can of course be added by the integrator.
>
>
Ghostscript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap. Other such conversions can, of course, be added by the integrator.
 
Changed:
<
<
MuPDF can render in RGB, Greyscale, or CMYK. Ghostscript is capable of all this, and also of handling color separations and DeviceN colors.
>
>
Both MuPDF and Ghostscript can render in RGB, Greyscale, CMYK and CMYK + Spots. Both MuPDF and Ghostscript are capable of overprint simulation, and also of handling color separations and DeviceN colors.
 

Adding a new printer type - via high level output

Line: 56 to 56
  Ghostscript has high level devices to output PostScript (Level 2) and PCL-6 (aka PCL/XL).
Changed:
<
<
While MuPDF does not currently offer any fully functional devices, it has both SVG output and PDF output modules that demonstrate its abilities. A third-party has implemented a GDI based output for doing rendering on Windows.
>
>
While MuPDF does not currently offer any fully functional high-level output devices, it has both SVG output and PDF output modules that demonstrate its abilities. A third-party has implemented a GDI based output for doing rendering on Windows.
  It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.

Bitmap output

Changed:
<
<
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, or if you need JPEG, TIFF, MIFF, BMP, PCX, PSD (Photoshop) or raw output use Ghostscript.
>
>
If you are outputting to a bitmap other than monochrome, greyscale, RGB, CMYK or CMYK+Spots, or if you need JPEG, TIFF, MIFF, BMP, PCX, PSD (Photoshop) or raw output use Ghostscript.
  If you want TGA (TrueVision) use MuPDF.

Both Ghostscript and MuPDF support PBM, PGM, PPM, PAM, PNG and both have the ability to do anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than Ghostscript. If anti-aliased output is important to you, then MuPDF is probably a better bet.

Changed:
<
<
As a rule of thumb, if you are rendering PDF or XPS input for display based use, you probably want to be leaning towards MuPDF.
>
>
As a rule of thumb, if you are rendering PDF, XPS or Image input for display based use, you probably want to be leaning towards MuPDF.
 

Interactive behaviour

Revision 332017-01-25 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Revision 322017-01-24 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 88 to 88
  Both Ghostscript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.
Changed:
<
<
Ghostscript allows for one page to be rendered in background threads while the display list for the next page is created by the interpreter. Ghostscript can render multiple bands in parallel.
>
>
Both allow for one page to be rendered in background threads while the display list for the next page is created by the interpreter.
  The decision of how to handle threads is divorced from the core of MuPDF. It is possible to implement both of the above schemes with MuPDF, as well as many others (such as rendering thumbnails for pages on a background thread, while rendering current pages at different zoom levels).
Line: 111 to 110
 The j9, j11 and j12 files are selected from the JEITA test suite, and have been used by some of our customers for performance studies. The PLRM-100 file is the first 100 pages from the PostScript Language Reference Manual - third edition. The JEITA files are available for purchase from that organization and PLRM is available from Adobe.
Ghostscript Performance
Changed:
<
<
Ghostscript commit 5a7b20755617cde8c915ab24725f94fd74be3aee is run with the arguments:
>
>
Ghostscript commit c7d005ac1c92a6fee43554fffd9a6f38c0a6b962 is run with the arguments:
 
Changed:
<
<
-Z: -dUseFastColor=true -sBandListStorage=memory -dBufferSpace=16m -o /dev/null -sDEVICE=bit____ -r____ -dGrayValues=___
>
>
-Z: -dUseFastColor=true -sBandListStorage=memory -dBufferSpace=16m -o /dev/null -sDEVICE=bit____ -r____ -dGrayValues=___ -dNumRenderingThreads=4 -dBGPrint=true
  to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.) and at either 600 or 1200 resolution. With these settings, the amount of RAM needed varies with the complexity of the page since the display list (BandList) is in RAM, and varies slightly with the resolution. For example, in Gray mode, files range from 30 Mb to 48 Mb. Note that -dUseFastColor may not be appropriate for CMYK 1-bit, since it is not possible to do color correction on a halftoned result. (TBD: run CMYK 1-bit with -dUseFastColor=false).
Changed:
<
<
MuPDF (commit 149520a84e3521289cb7e56ef5ca6aef59a8cbc3) mutool is run with the arguments:
>
>
MuPDF (commit 35b2aeef91fdd062f54beba302726c9ea279114e) mutool is run with the arguments:

for mono 1-bit:: draw -r600 -o /dev/null -F pbm -c mono -A 0 -B 2400 -s t -P -T4

 
Changed:
<
<
for mono 1-bit:: draw -r600 -o /dev/null -F pbm -c mono -A 0 -B 2400 -s t
>
>
for gray 8-bit: draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2400 -s t -P -T4
 
Changed:
<
<
for gray 8-bit: draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2400 -s t
>
>
for rgb: draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 880 -s t -P -T4
 
Changed:
<
<
for rgb: draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 880 -s t
>
>
for cmyk 1-bit: draw -r600 -o /dev/null -F pkm -c cmyk -A 0 -B 704 -s t -P -T4
 
Deleted:
<
<
for cmyk 1-bit: draw -r600 -o /dev/null -F pkm -c cmyk -A 0 -B 704 -s t
  and,
Changed:
<
<
for cmyk 8-bit: draw -r600 -o /dev/null -F pam -c cmyk -A 0 -B 704 -s t
>
>
for cmyk 8-bit: draw -r600 -o /dev/null -F pam -c cmyk -A 0 -B 704 -s t -P -T4
 
Changed:
<
<
For the 1200 dpi cases, mupdf Band Heights are one-half the above value for "-B". The BandHeights are set the same for 8-bit and 1-bit since mupdf first renders to 8-bit (plus alpha), then halftones the rendered image to 1-bit.
>
>
For the 1200 dpi cases, mupdf Band Heights are one-half the above value for "-B". The BandHeights are set the same for 8-bit and 1-bit since mupdf first renders to 8-bit, then halftones the rendered image to 1-bit.
 
Changed:
<
<
Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)
>
>
Running on a RaspBerry Pi 3 (Quad core ARMv8) at 1.2GHz, 1Gb RAM, with a small set of benchmark files gives some comparison for common color models and depths. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)
  Monochrome (1-bit) / Gray (8-bit)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.9 7.9 6.5 6.9 23.7 31.4 8.4 13.3
J11.pdf 12 7.1 8.2 2.7 3.5 18.1 21.5 5.4 6.7
J12.pdf 20 12.0 11.9 8.5 10.1 21.8 29.4 7.2 10.5
PLRM-100.pdf 100 161.7 123.5 130.7 79.7 88.2 372.0 29.4 165.2
>
>
J9.pdf 5 38.9 52.2 44.8 43.5 193.4 96.7 90.8 96.7
J11.pdf 12 36.5 56.4 17.4 26.0 120.6 127.1 60.1 64.3
J12.pdf 20 41.4 52.5 42.1 45.0 149.6 165.5 73.9 85.2
PLRM-100.pdf 100 860.8 718.3 618.9 357.2 741.1 1083.0 315.2 508.1
  CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 6.9 7.6 5.4 6.0 13.6 23.1 4.2 8.1
J11.pdf 12 3.9 4.7 1.3 1.6 9.3 13.0 2.5 3.5
J12.pdf 20 6.0 11.0 3.8 8.0 11.2 17.3 3.2 5.2
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 39.7 139.2 10.3 39.1
>
>
J9.pdf 5 49.1 47.5 43.9 33.9 105.8 129.8 35.1 44.9
J11.pdf 12 29.5 35.6 13.5 11.7 90.0 114.7 28.7 38.9
J12.pdf 20 35.7 47.1 28.2 33.8 90.6 120.1 31.2 43.2
PLRM-100.pdf 100 563.0 366.1 367.1 165.5 279.2 502.3 97.0 175.8
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
Changed:
<
<
J9.pdf 5 7.8 6.3 32.4 13.5
J11.pdf 12 5.2 1.8 19.7 5.6
J12.pdf 20 11.9 9.0 30.7 10.2
PLRM-100.pdf 100 105.7 56.4 300.8 105.6
>
>
J9.pdf 5 43.8 37.1 165.5 61.1
J11.pdf 12 38.0 14.4 144.0 50.7
J12.pdf 20 49.1 37.1 168.9 61.1
PLRM-100.pdf 100 434.3 198.3 619.4 229.1

 Running Ghostscript on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

Monochrome (1-bit) / Gray (8-bit)

Revision 312016-03-25 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 146 to 146
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 6.9 7.6 5.4 6.0 10.7 23.1 3.1 8.1
J11.pdf 12 3.9 4.7 1.3 1.6 8.0 13.0 2.2 3.5
J12.pdf 20 6.0 11.0 3.8 8.0 9.0 17.3 2.5 5.2
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 29.2 139.2 7.5 39.1
>
>
J9.pdf 5 6.9 7.6 5.4 6.0 13.6 23.1 4.2 8.1
J11.pdf 12 3.9 4.7 1.3 1.6 9.3 13.0 2.5 3.5
J12.pdf 20 6.0 11.0 3.8 8.0 11.2 17.3 3.2 5.2
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 39.7 139.2 10.3 39.1
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 302016-03-25 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 146 to 146
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 6.9 7.6 5.4 6.0 10.7 18.6 3.1 6.1
J11.pdf 12 3.9 4.7 1.3 1.6 8.0 10.9 2.2 2.9
J12.pdf 20 6.0 11.0 3.8 8.0 9.0 14.1 2.5 4.1
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 29.2 144.5 7.5 41.1
>
>
J9.pdf 5 6.9 7.6 5.4 6.0 10.7 23.1 3.1 8.1
J11.pdf 12 3.9 4.7 1.3 1.6 8.0 13.0 2.2 3.5
J12.pdf 20 6.0 11.0 3.8 8.0 9.0 17.3 2.5 5.2
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 29.2 139.2 7.5 39.1
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 292016-03-25 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 137 to 137
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.9 7.9 6.5 6.9 22.6 31.4 8.0 13.3
J11.pdf 12 7.1 8.2 2.7 3.5 18.0 21.5 5.3 6.7
J12.pdf 20 12.0 11.9 8.5 10.1 20.7 29.4 6.8 10.5
PLRM-100.pdf 100 161.7 123.5 130.7 79.7 72.9 372.0 21.2 165.2
>
>
J9.pdf 5 7.9 7.9 6.5 6.9 23.7 31.4 8.4 13.3
J11.pdf 12 7.1 8.2 2.7 3.5 18.1 21.5 5.4 6.7
J12.pdf 20 12.0 11.9 8.5 10.1 21.8 29.4 7.2 10.5
PLRM-100.pdf 100 161.7 123.5 130.7 79.7 88.2 372.0 29.4 165.2
  CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF

Revision 282016-03-25 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 146 to 146
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 6.9 7.6 5.4 6.0 10.7 12.7 3.1 3.7
J11.pdf 12 3.9 4.7 1.3 1.6 8.0 8.9 2.2 2.4
J12.pdf 20 6.0 11.0 3.8 8.0 9.0 10.5 2.5 2.9
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 29.2 40.5 7.5 10.4
>
>
J9.pdf 5 6.9 7.6 5.4 6.0 10.7 18.6 3.1 6.1
J11.pdf 12 3.9 4.7 1.3 1.6 8.0 10.9 2.2 2.9
J12.pdf 20 6.0 11.0 3.8 8.0 9.0 14.1 2.5 4.1
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 29.2 144.5 7.5 41.1
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 272016-03-24 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 146 to 146
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 6.9 7.6 5.4 6.0 8.5 12.7 2.4 3.7
J11.pdf 12 3.9 4.7 1.3 1.6 6.9 8.9 1.8 2.4
J12.pdf 20 6.0 11.0 3.8 8.0 7.4 10.5 2.0 2.9
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 19.4 40.5 4.9 10.4
>
>
J9.pdf 5 6.9 7.6 5.4 6.0 10.7 12.7 3.1 3.7
J11.pdf 12 3.9 4.7 1.3 1.6 8.0 8.9 2.2 2.4
J12.pdf 20 6.0 11.0 3.8 8.0 9.0 10.5 2.5 2.9
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 29.2 40.5 7.5 10.4
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 262016-03-24 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 154 to 154
 RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
Changed:
<
<
J9.pdf 5 6.4 5.4 32.4 13.5
J11.pdf 12 4.8 1.7 19.7 5.6
J12.pdf 20 9.1 7.2 30.7 10.2
PLRM-100.pdf 100 96.9 52.5 300.8 105.6
>
>
J9.pdf 5 7.8 6.3 32.4 13.5
J11.pdf 12 5.2 1.8 19.7 5.6
J12.pdf 20 11.9 9.0 30.7 10.2
PLRM-100.pdf 100 105.7 56.4 300.8 105.6
  Running Ghostscript on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

Revision 252016-03-24 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 146 to 146
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 5.2 5.7 4.1 4.7 8.5 12.7 2.4 3.7
J11.pdf 12 3.3 4.1 1.2 1.4 6.9 8.9 1.8 2.4
J12.pdf 20 4.5 7.7 2.7 6.0 7.4 10.5 2.0 2.9
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 19.4 40.5 4.9 10.4
>
>
J9.pdf 5 6.9 7.6 5.4 6.0 8.5 12.7 2.4 3.7
J11.pdf 12 3.9 4.7 1.3 1.6 6.9 8.9 1.8 2.4
J12.pdf 20 6.0 11.0 3.8 8.0 7.4 10.5 2.0 2.9
PLRM-100.pdf 100 125.7 103.6 63.5 54.4 19.4 40.5 4.9 10.4
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 242016-03-24 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 111 to 111
 The j9, j11 and j12 files are selected from the JEITA test suite, and have been used by some of our customers for performance studies. The PLRM-100 file is the first 100 pages from the PostScript Language Reference Manual - third edition. The JEITA files are available for purchase from that organization and PLRM is available from Adobe.
Ghostscript Performance
Changed:
<
<
Ghostscript is run with the arguments:
>
>
Ghostscript commit 5a7b20755617cde8c915ab24725f94fd74be3aee is run with the arguments:
  -Z: -dUseFastColor=true -sBandListStorage=memory -dBufferSpace=16m -o /dev/null -sDEVICE=bit____ -r____ -dGrayValues=___
Line: 137 to 137
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.1 6.5 5.5 5.7 22.6 31.4 8.0 13.3
J11.pdf 12 6.8 7.3 2.5 3.2 18.0 21.5 5.3 6.7
J12.pdf 20 11.3 9.3 7.2 7.9 20.7 29.4 6.8 10.5
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 72.9 372.0 21.2 165.2
>
>
J9.pdf 5 7.9 7.9 6.5 6.9 22.6 31.4 8.0 13.3
J11.pdf 12 7.1 8.2 2.7 3.5 18.0 21.5 5.3 6.7
J12.pdf 20 12.0 11.9 8.5 10.1 20.7 29.4 6.8 10.5
PLRM-100.pdf 100 161.7 123.5 130.7 79.7 72.9 372.0 21.2 165.2
  CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF

Revision 232016-03-24 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 146 to 146
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 5.2 5.7 4.1 4.7 8.5 12.7 2.4 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 6.9 8.9 1.8 2.1
J12.pdf 20 4.5 7.7 2.7 6.0 7.4 10.5 2.0 2.6
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 19.4 40.5 4.9 9.4
>
>
J9.pdf 5 5.2 5.7 4.1 4.7 8.5 12.7 2.4 3.7
J11.pdf 12 3.3 4.1 1.2 1.4 6.9 8.9 1.8 2.4
J12.pdf 20 4.5 7.7 2.7 6.0 7.4 10.5 2.0 2.9
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 19.4 40.5 4.9 10.4
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
Changed:
<
<
J9.pdf 5 6.4 5.4 27.9 11.9
J11.pdf 12 4.8 1.7 17.5 5.0
J12.pdf 20 9.1 7.2 27.1 9.3
PLRM-100.pdf 100 96.9 52.5 285.3 96.5
>
>
J9.pdf 5 6.4 5.4 32.4 13.5
J11.pdf 12 4.8 1.7 19.7 5.6
J12.pdf 20 9.1 7.2 30.7 10.2
PLRM-100.pdf 100 96.9 52.5 300.8 105.6
 Running Ghostscript on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

Monochrome (1-bit) / Gray (8-bit)

Revision 222016-03-23 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 117 to 117
  to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.) and at either 600 or 1200 resolution. With these settings, the amount of RAM needed varies with the complexity of the page since the display list (BandList) is in RAM, and varies slightly with the resolution. For example, in Gray mode, files range from 30 Mb to 48 Mb. Note that -dUseFastColor may not be appropriate for CMYK 1-bit, since it is not possible to do color correction on a halftoned result. (TBD: run CMYK 1-bit with -dUseFastColor=false).
Changed:
<
<
MuPDF (mutool) is run with the arguments:
>
>
MuPDF (commit 149520a84e3521289cb7e56ef5ca6aef59a8cbc3) mutool is run with the arguments:
 
Changed:
<
<
for monochrome 1-bit (no banding needed for 16Mb buffer): draw -r600 -o /dev/null -F pbm -c mono -A 0 -s t
>
>
for mono 1-bit:: draw -r600 -o /dev/null -F pbm -c mono -A 0 -B 2400 -s t
 
Changed:
<
<
for gray: draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2800 -s t
>
>
for gray 8-bit: draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2400 -s t
 
Changed:
<
<
for rgb: draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 938 -s t
>
>
for rgb: draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 880 -s t

for cmyk 1-bit: draw -r600 -o /dev/null -F pkm -c cmyk -A 0 -B 704 -s t and, for cmyk 8-bit: draw -r600 -o /dev/null -F pam -c cmyk -A 0 -B 704 -s t

For the 1200 dpi cases, mupdf Band Heights are one-half the above value for "-B". The BandHeights are set the same for 8-bit and 1-bit since mupdf first renders to 8-bit (plus alpha), then halftones the rendered image to 1-bit.

  Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)
Line: 131 to 137
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.1 6.5 5.5 5.7 22.6 28.1 8.0 11.7
J11.pdf 12 6.8 7.3 2.5 3.2 18.0 19.6 5.3 5.0
J12.pdf 20 11.3 9.3 7.2 7.9 20.7 26.1 6.8 9.3
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 72.9 335.6 21.2 140.1
>
>
J9.pdf 5 7.1 6.5 5.5 5.7 22.6 31.4 8.0 13.3
J11.pdf 12 6.8 7.3 2.5 3.2 18.0 21.5 5.3 6.7
J12.pdf 20 11.3 9.3 7.2 7.9 20.7 29.4 6.8 10.5
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 72.9 372.0 21.2 165.2
  CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 5.2 5.7 4.1 4.7 8.5 10.9 2.4 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 6.9 8.0 1.8 2.1
J12.pdf 20 4.5 7.7 2.7 6.0 7.4 9.2 2.0 2.6
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 19.4 36.6 - 9.4
>
>
J9.pdf 5 5.2 5.7 4.1 4.7 8.5 12.7 2.4 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 6.9 8.9 1.8 2.1
J12.pdf 20 4.5 7.7 2.7 6.0 7.4 10.5 2.0 2.6
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 19.4 40.5 4.9 9.4
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 212016-03-23 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 131 to 131
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.1 6.5 5.5 5.7 16.5 28.1 5.3 11.7
J11.pdf 12 6.8 7.3 2.5 3.2 14.3 19.6 4.2 5.0
J12.pdf 20 11.3 9.3 7.2 7.9 15.7 26.1 4.3 9.3
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 48.1 335.6 12.4 140.1
>
>
J9.pdf 5 7.1 6.5 5.5 5.7 22.6 28.1 8.0 11.7
J11.pdf 12 6.8 7.3 2.5 3.2 18.0 19.6 5.3 5.0
J12.pdf 20 11.3 9.3 7.2 7.9 20.7 26.1 6.8 9.3
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 72.9 335.6 21.2 140.1
  CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 5.2 5.7 4.1 4.7 - 10.9 - 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 - 8.0 - 2.1
J12.pdf 20 4.5 7.7 2.7 6.0 - 9.2 - 2.6
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 - 36.6 - 9.4
>
>
J9.pdf 5 5.2 5.7 4.1 4.7 8.5 10.9 2.4 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 6.9 8.0 1.8 2.1
J12.pdf 20 4.5 7.7 2.7 6.0 7.4 9.2 2.0 2.6
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 19.4 36.6 - 9.4
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 202016-03-23 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Revision 192016-03-23 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 142 to 142
 
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
J9.pdf 5 5.2 5.7 4.1 4.7 - 10.9 - 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 - 8.0 - 2.1
Changed:
<
<
J12.pdf 20 4.5 7.7 2.7 6.0 - 9.2 - -
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 - 36.6 - -
>
>
J12.pdf 20 4.5 7.7 2.7 6.0 - 9.2 - 2.6
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 - 36.6 - 9.4
  RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF

Revision 182016-03-22 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 131 to 131
 
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.1 6.5 5.5 5.7 16.0 20.0 5.3 7.0
J11.pdf 12 6.8 7.3 2.5 3.2 14.0 16.1 4.2 4.8
J12.pdf 20 11.3 9.3 7.2 7.9 15.3 19.0 4.3 6.1
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 46.3 74.7 12.0 20.6
>
>
J9.pdf 5 7.1 6.5 5.5 5.7 16.5 28.1 5.3 11.7
J11.pdf 12 6.8 7.3 2.5 3.2 14.3 19.6 4.2 5.0
J12.pdf 20 11.3 9.3 7.2 7.9 15.7 26.1 4.3 9.3
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 48.1 335.6 12.4 140.1
  CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
Changed:
<
<
J9.pdf 5 7.1 6.5 5.5 5.7 16.0 20.0 5.3 7.0
J11.pdf 12 6.8 7.3 2.5 3.2 14.0 16.1 4.2 4.8
J12.pdf 20 11.3 9.3 7.2 7.9 15.3 19.0 4.3 6.1
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 46.3 74.7 12.0 20.6

RGB 24-bit Contone (8-bit per component) |

File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

|

600

8-bit

1200

8-bit

6.5 5.4
4.8 1.7
9.1 7.2
96.9 52.5

|

600

8-bit

1200

8-bit

14.6 4.7
12.1 3.3
14.3 4.2
37.0 9.6

|

  Ghostscript MuPDF
>
>
J9.pdf 5 5.2 5.7 4.1 4.7 - 10.9 - 3.3
J11.pdf 12 3.3 4.1 1.2 1.4 - 8.0 - 2.1
J12.pdf 20 4.5 7.7 2.7 6.0 - 9.2 - -
PLRM-100.pdf 100 31.2 93.3 12.0 50.0 - 36.6 - -

RGB 24-bit Contone (8-bit per component)

  Ghostscript MuPDF
File # pages 600 1200 600 1200
J9.pdf 5 6.4 5.4 27.9 11.9
J11.pdf 12 4.8 1.7 17.5 5.0
J12.pdf 20 9.1 7.2 27.1 9.3
PLRM-100.pdf 100 96.9 52.5 285.3 96.5
 Running Ghostscript on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

Monochrome (1-bit) / Gray (8-bit)

Revision 172016-03-22 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 137 to 137
 
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 46.3 74.7 12.0 20.6

CMYK (1-bit per component) / contone (8-bit per component)

Changed:
<
<
  Ghostscript MuPDF
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

5.1 5.6 5.5 4.1
3.3 4.4 2.5 1.2
4.5 7.6 7.2 2.6
31.2 93.3 118.8 11.9
---- TBD ----
>
>
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
J9.pdf 5 7.1 6.5 5.5 5.7 16.0 20.0 5.3 7.0
J11.pdf 12 6.8 7.3 2.5 3.2 14.0 16.1 4.2 4.8
J12.pdf 20 11.3 9.3 7.2 7.9 15.3 19.0 4.3 6.1
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 46.3 74.7 12.0 20.6
 
Changed:
<
<
RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

8-bit

1200

8-bit

6.5 5.4
4.8 1.7
9.1 7.2
96.9 52.5

600

8-bit

1200

8-bit

14.6 4.7
12.1 3.3
14.3 4.2
37.0 9.6
>
>
RGB 24-bit Contone (8-bit per component) |
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

|

600

8-bit

1200

8-bit

6.5 5.4
4.8 1.7
9.1 7.2
96.9 52.5

|

600

8-bit

1200

8-bit

14.6 4.7
12.1 3.3
14.3 4.2
37.0 9.6
 
Added:
>
>
|
  Ghostscript MuPDF
  Running Ghostscript on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

Revision 162016-03-22 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 128 to 128
 Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)

Monochrome (1-bit) / Gray (8-bit)

Changed:
<
<
  Ghostscript MuPDF
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

7.1 6.5 5.5 5.7
6.8 7.3 2.5 3.2
11.3 9.3 7.2 7.9
148.5 97.9 118.8 58.5

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

16.0 20.0 5.3 7.0
14.0 16.1 4.2 4.8
15.3 19.0 4.3 6.1
46.3 74.7 12.0 20.6
>
>
  Ghostscript MuPDF
File # pages 600 1200 600 1200
1-bit 8-bit 1-bit 8-bit 1-bit 8-bit 1-bit 8-bit
J9.pdf 5 7.1 6.5 5.5 5.7 16.0 20.0 5.3 7.0
J11.pdf 12 6.8 7.3 2.5 3.2 14.0 16.1 4.2 4.8
J12.pdf 20 11.3 9.3 7.2 7.9 15.3 19.0 4.3 6.1
PLRM-100.pdf 100 148.5 97.9 118.8 58.5 46.3 74.7 12.0 20.6
  CMYK (1-bit per component) / contone (8-bit per component)
Changed:
<
<
  Ghostscript MuPDF
>
>
  Ghostscript MuPDF
 
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

5.1 5.6 5.5 4.1
3.3 4.4 2.5 1.2
4.5 7.6 7.2 2.6
31.2 93.3 118.8 11.9
---- TBD ----

RGB 24-bit Contone (8-bit per component)

Revision 152016-03-05 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 117 to 117
  to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.) and at either 600 or 1200 resolution. With these settings, the amount of RAM needed varies with the complexity of the page since the display list (BandList) is in RAM, and varies slightly with the resolution. For example, in Gray mode, files range from 30 Mb to 48 Mb. Note that -dUseFastColor may not be appropriate for CMYK 1-bit, since it is not possible to do color correction on a halftoned result. (TBD: run CMYK 1-bit with -dUseFastColor=false).
Added:
>
>
MuPDF (mutool) is run with the arguments:

for monochrome 1-bit (no banding needed for 16Mb buffer): draw -r600 -o /dev/null -F pbm -c mono -A 0 -s t

for gray: draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2800 -s t

for rgb: draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 938 -s t

 Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)

Monochrome (1-bit) / Gray (8-bit)

Changed:
<
<
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 7.1 6.5 5.5 5.7
J11.pdf 12 6.8 7.3 2.5 3.2
J12.pdf 20 11.3 9.3 7.2 7.9
PLRM-100.pdf 100 148.5 97.9 118.8 58.5
>
>
  Ghostscript MuPDF
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

7.1 6.5 5.5 5.7
6.8 7.3 2.5 3.2
11.3 9.3 7.2 7.9
148.5 97.9 118.8 58.5

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

16.0 20.0 5.3 7.0
14.0 16.1 4.2 4.8
15.3 19.0 4.3 6.1
46.3 74.7 12.0 20.6
 
Changed:
<
<
CYMK (1-bit) and 32-bit Contone (8-bit / component)
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 5.1 5.6 5.5 4.1
J11.pdf 12 3.3 4.4 2.5 1.2
J12.pdf 20 4.5 7.6 7.2 2.6
PLRM-100.pdf 100 31.2 93.3 118.8 11.9
>
>
CMYK (1-bit per component) / contone (8-bit per component)
  Ghostscript MuPDF
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

5.1 5.6 5.5 4.1
3.3 4.4 2.5 1.2
4.5 7.6 7.2 2.6
31.2 93.3 118.8 11.9
---- TBD ----
 
Changed:
<
<
RGB 24-bit Contone (8-bit / component)
File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 6.5 5.4
J11.pdf 12 4.8 1.7
J12.pdf 20 9.1 7.2
PLRM-100.pdf 100 96.9 52.5
Running on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).
>
>
RGB 24-bit Contone (8-bit per component)
  Ghostscript MuPDF
File

#

pages

J9.pdf 5
J11.pdf 12
J12.pdf 20
PLRM-100.pdf 100

600

8-bit

1200

8-bit

6.5 5.4
4.8 1.7
9.1 7.2
96.9 52.5

600

8-bit

1200

8-bit

14.6 4.7
12.1 3.3
14.3 4.2
37.0 9.6

Running Ghostscript on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

  Monochrome (1-bit) / Gray (8-bit)
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

Line: 161 to 162
 
J11.pdf 12 25.5 6.8
J12.pdf 20 32.0 19.2
PLRM-100.pdf 100 216.7 74.8
Deleted:
<
<
!MuPDF Performance

Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with the same small set of benchmark files gives some comparison for a few contone (8-bit per component) color models. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm).

mutool is run with the arguments:

draw -r600 -o /dev/null -F pbm -c mono -A 0 -s t

for monochrome 1-bit (no banding needed for 16Mb buffer), and :

draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2800 -s t

for gray, and:

draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 938 -s t

for rgb, and:

draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 698 -s t

for cmyk contone.

The band heights (2800 for gray, 938 for rgb, and 698 for cmyk) correspond to the band heights used by Ghostscript with -dBufferSpace=16m. For 1200 dpi, the band heights are 1400, 460 and 350. No banding is used for 1200 dpi mono since mupdf does not currently support banding for pbm output.

Monochrome (1-bit) / Gray (8-bit)

File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 16.0 20.0 5.3 7.0
J11.pdf 12 14.0 16.1 4.2 4.8
J12.pdf 20 15.3 19.0 4.3 6.1
PLRM-100.pdf 100 46.3 74.7 12.0 20.6
RGB

File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 14.6 4.7
J11.pdf 12 12.1 3.3
J12.pdf 20 14.3 4.2
PLRM-100.pdf 100 37.0 9.6
CMYK
 
Deleted:
<
<
TBD
 
<--/commentPlugin-->
\ No newline at end of file

Revision 142016-03-01 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 167 to 167
  mutool is run with the arguments:
Changed:
<
<
draw -r600 -o /dev/null -F pgm -c gray -A 0 -s t
>
>
draw -r600 -o /dev/null -F pbm -c mono -A 0 -s t
  for monochrome 1-bit (no banding needed for 16Mb buffer), and :
Changed:
<
<
draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2800 -s t
>
>
draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2800 -s t
  for gray, and:
Changed:
<
<
draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 938 -s t
>
>
draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 938 -s t
  for rgb, and:
Changed:
<
<
draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 698 -s t
>
>
draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 698 -s t
  for cmyk contone.
Changed:
<
<
The band heights (2800 for gray and 938 for rgb) correspond to the band heights used by Ghostscript with -dBufferSpace=16m.
>
>
The band heights (2800 for gray, 938 for rgb, and 698 for cmyk) correspond to the band heights used by Ghostscript with -dBufferSpace=16m. For 1200 dpi, the band heights are 1400, 460 and 350. No banding is used for 1200 dpi mono since mupdf does not currently support banding for pbm output.
  Monochrome (1-bit) / Gray (8-bit)
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

Changed:
<
<
J9.pdf 5 66.1 55.1 32.5 37.7
J11.pdf 12 44.5 43.9 10.4 13.6
J12.pdf 20 46.9 54.1 32.4 26.6
PLRM-100.pdf 100 681.7 504.5 370.5 140.1
>
>
J9.pdf 5 16.0 20.0 5.3 7.0
J11.pdf 12 14.0 16.1 4.2 4.8
J12.pdf 20 15.3 19.0 4.3 6.1
PLRM-100.pdf 100 46.3 74.7 12.0 20.6
 RGB

File

#

pages

600

8-bit

1200

8-bit

Changed:
<
<
J9.pdf 5 15.7 5.0
J11.pdf 12 13.0 3.6
J12.pdf 20 15.4 4.5
PLRM-100.pdf 100 39.6 10.2

CMYK

File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 15.7 5.0
J11.pdf 12 13.0 3.6
J12.pdf 20 15.4 4.5
PLRM-100.pdf 100 39.6 10.2
-- Ray Johnston - 2016-02-29 -- Robin Watts - 2015-04-03
>
>
J9.pdf 5 14.6 4.7
J11.pdf 12 12.1 3.3
J12.pdf 20 14.3 4.2
PLRM-100.pdf 100 37.0 9.6
CMYK
 
Changed:
<
<

Comments

>
>
TBD
 
Changed:
<
<

<--/commentPlugin-->
>
>
<--/commentPlugin-->
 \ No newline at end of file

Revision 132016-02-29 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 109 to 109
 The actual rendering speeds of Ghostscript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.

The j9, j11 and j12 files are selected from the JEITA test suite, and have been used by some of our customers for performance studies. The PLRM-100 file is the first 100 pages from the PostScript Language Reference Manual - third edition. The JEITA files are available for purchase from that organization and PLRM is available from Adobe.

Changed:
<
<
Ghostscript Performance
>
>
Ghostscript Performance
  Ghostscript is run with the arguments:
Changed:
<
<
-Z: -dUseFastColor=true -sBandListStorage=memory -dBufferSpace=16m -o /dev/null -sDEVICE=bit____ -r____ -dGrayValues=___
>
>
-Z: -dUseFastColor=true -sBandListStorage=memory -dBufferSpace=16m -o /dev/null -sDEVICE=bit____ -r____ -dGrayValues=___
  to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.) and at either 600 or 1200 resolution. With these settings, the amount of RAM needed varies with the complexity of the page since the display list (BandList) is in RAM, and varies slightly with the resolution. For example, in Gray mode, files range from 30 Mb to 48 Mb. Note that -dUseFastColor may not be appropriate for CMYK 1-bit, since it is not possible to do color correction on a halftoned result. (TBD: run CMYK 1-bit with -dUseFastColor=false).
Line: 162 to 161
 
J11.pdf 12 25.5 6.8
J12.pdf 20 32.0 19.2
PLRM-100.pdf 100 216.7 74.8
Changed:
<
<
!MuPDF Performance TBD
>
>
!MuPDF Performance

Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with the same small set of benchmark files gives some comparison for a few contone (8-bit per component) color models. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm).

mutool is run with the arguments:

draw -r600 -o /dev/null -F pgm -c gray -A 0 -s t

for monochrome 1-bit (no banding needed for 16Mb buffer), and :

draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 2800 -s t

for gray, and:

draw -r600 -o /dev/null -F ppm -c rgb -A 0 -B 938 -s t

for rgb, and:

draw -r600 -o /dev/null -F pgm -c gray -A 0 -B 698 -s t

for cmyk contone.

 
Changed:
<
<
-- Ray Johnston - 2016-02-29  -- Robin Watts - 2015-04-03
>
>
The band heights (2800 for gray and 938 for rgb) correspond to the band heights used by Ghostscript with -dBufferSpace=16m.

Monochrome (1-bit) / Gray (8-bit)

File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 66.1 55.1 32.5 37.7
J11.pdf 12 44.5 43.9 10.4 13.6
J12.pdf 20 46.9 54.1 32.4 26.6
PLRM-100.pdf 100 681.7 504.5 370.5 140.1
RGB

File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 15.7 5.0
J11.pdf 12 13.0 3.6
J12.pdf 20 15.4 4.5
PLRM-100.pdf 100 39.6 10.2

CMYK

File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 15.7 5.0
J11.pdf 12 13.0 3.6
J12.pdf 20 15.4 4.5
PLRM-100.pdf 100 39.6 10.2
-- Ray Johnston - 2016-02-29 -- Robin Watts - 2015-04-03
 

Comments

Revision 122016-02-29 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 108 to 108
  The actual rendering speeds of Ghostscript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.
Changed:
<
<
Running on a RaspBerry Pi Model B (single core, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. The j9, j11 and j12 files are selected from the JEITA test suite, and have been used by some of our customers for performance studies. The PLRM-100 file is the first 100 pages from the PostScript Language Reference Manual - third edition. The JEITA files are available for purchase from that organization and PLRM is available from Adobe.
>
>
The j9, j11 and j12 files are selected from the JEITA test suite, and have been used by some of our customers for performance studies. The PLRM-100 file is the first 100 pages from the PostScript Language Reference Manual - third edition. The JEITA files are available for purchase from that organization and PLRM is available from Adobe.
  Ghostscript Performance
Line: 118 to 118
  to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.) and at either 600 or 1200 resolution. With these settings, the amount of RAM needed varies with the complexity of the page since the display list (BandList) is in RAM, and varies slightly with the resolution. For example, in Gray mode, files range from 30 Mb to 48 Mb. Note that -dUseFastColor may not be appropriate for CMYK 1-bit, since it is not possible to do color correction on a halftoned result. (TBD: run CMYK 1-bit with -dUseFastColor=false).
Changed:
<
<
Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)
>
>
Running on a RaspBerry Pi Model B (single core ARM, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)
  Monochrome (1-bit) / Gray (8-bit)
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

Line: 140 to 140
 
J11.pdf 12 4.8 1.7
J12.pdf 20 9.1 7.2
PLRM-100.pdf 100 96.9 52.5
Added:
>
>
Running on a Windows XP laptop having an Intel Celeron x86 at 1.6GHz, with the same small set of benchmark files gives the results below. As with the timings above, five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are also in "Pages per Minute" (ppm).

Monochrome (1-bit) / Gray (8-bit)

File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 66.1 55.1 32.5 37.7
J11.pdf 12 44.5 43.9 10.4 13.6
J12.pdf 20 46.9 54.1 32.4 26.6
PLRM-100.pdf 100 681.7 504.5 370.5 140.1

CYMK (1-bit) and 32-bit Contone (8-bit / component)

File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 43.9 39.3 21.5 14.9
J11.pdf 12 22.2 19.9 5.1 4.9
J12.pdf 20 34.1 26.4 13.7 14.7
PLRM-100.pdf 100 177.9 161.3 66.7 51.4

RGB 24-bit Contone (8-bit / component)

File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 46.3 19.1
J11.pdf 12 25.5 6.8
J12.pdf 20 32.0 19.2
PLRM-100.pdf 100 216.7 74.8
  !MuPDF Performance TBD
Changed:
<
<
-- Ray Johnston - 2016-02-11 -- Robin Watts - 2015-04-03
>
>
-- Ray Johnston - 2016-02-29  -- Robin Watts - 2015-04-03
 

Comments

Revision 112016-02-11 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 108 to 108
  The actual rendering speeds of Ghostscript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.
Changed:
<
<
Running on a RaspBerry Pi Model B (not Pi 2) with a small set of benchmark files gives some comparison for common color models and depths.
>
>
Running on a RaspBerry Pi Model B (single core, not Pi 2 quad core) at 700MHz, with a small set of benchmark files gives some comparison for common color models and depths. The j9, j11 and j12 files are selected from the JEITA test suite, and have been used by some of our customers for performance studies. The PLRM-100 file is the first 100 pages from the PostScript Language Reference Manual - third edition. The JEITA files are available for purchase from that organization and PLRM is available from Adobe.
 
Changed:
<
<
Ghostscript is run with the arguments: -sBandListStorage=memory -dBandHeight=256 to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.)
>
>
Ghostscript Performance

Ghostscript is run with the arguments:

-Z: -dUseFastColor=true -sBandListStorage=memory -dBufferSpace=16m -o /dev/null -sDEVICE=bit____ -r____ -dGrayValues=___

to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.) and at either 600 or 1200 resolution. With these settings, the amount of RAM needed varies with the complexity of the page since the display list (BandList) is in RAM, and varies slightly with the resolution. For example, in Gray mode, files range from 30 Mb to 48 Mb. Note that -dUseFastColor may not be appropriate for CMYK 1-bit, since it is not possible to do color correction on a halftoned result. (TBD: run CMYK 1-bit with -dUseFastColor=false).

Five runs of each file are performed and the fastest is used (to allow for random other processor load). All results below are in "Pages per Minute" (ppm)

Monochrome (1-bit) / Gray (8-bit)

 
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

Changed:
<
<
J9.pdf 5 7.1   5.5  
J11.pdf 12 6.8   2.5  
J12.pdf 20 11.3   7.2  
PLRM-100.pdf 100 148.5   118.8  
>
>
J9.pdf 5 7.1 6.5 5.5 5.7
J11.pdf 12 6.8 7.3 2.5 3.2
J12.pdf 20 11.3 9.3 7.2 7.9
PLRM-100.pdf 100 148.5 97.9 118.8 58.5
 
Changed:
<
<
-- Robin Watts - 2015-04-03
>
>
CYMK (1-bit) and 32-bit Contone (8-bit / component)
File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 5.1 5.6 5.5 4.1
J11.pdf 12 3.3 4.4 2.5 1.2
J12.pdf 20 4.5 7.6 7.2 2.6
PLRM-100.pdf 100 31.2 93.3 118.8 11.9

RGB 24-bit Contone (8-bit / component)

File

#

pages

600

8-bit

1200

8-bit

J9.pdf 5 6.5 5.4
J11.pdf 12 4.8 1.7
J12.pdf 20 9.1 7.2
PLRM-100.pdf 100 96.9 52.5
!MuPDF Performance TBD
 
Changed:
<
<
-- Ray Johnston - 2015-04-07
>
>
-- Ray Johnston - 2016-02-11 -- Robin Watts - 2015-04-03
 

Comments

Revision 102016-02-11 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 108 to 108
  The actual rendering speeds of Ghostscript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.
Added:
>
>
Running on a RaspBerry Pi Model B (not Pi 2) with a small set of benchmark files gives some comparison for common color models and depths.

Ghostscript is run with the arguments: -sBandListStorage=memory -dBandHeight=256 to the various "bit" devices, with -dGrayValues=2 or 256 (1-bit or 8-bit, resp.)

File

#

pages

600

1-bit

600

8-bit

1200

1-bit

1200

8-bit

J9.pdf 5 7.1   5.5  
J11.pdf 12 6.8   2.5  
J12.pdf 20 11.3   7.2  
PLRM-100.pdf 100 148.5   118.8  
 -- Robin Watts - 2015-04-03

-- Ray Johnston - 2015-04-07

Revision 92015-06-06 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 12 to 12
  Similarly GhostXPS is an XPS parser written on top of the Ghostscript graphics library.
Changed:
<
<
For the rest of this discussion we will just say "Ghostscript" when we actually mean "Ghostscript, GhostPCL and GhostXPS "; everything we say about Ghostscript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "!GhostPDL".
>
>
For the rest of this discussion we will just say "Ghostscript" when we actually mean "Ghostscript, GhostPCL and GhostXPS "; everything we say about Ghostscript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "GhostPDL".
  If you need the ability to handle EPUB or CBZ input, then you must use MuPDF.

Revision 82015-04-21 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Changed:
<
<

Choosing between GhostScript and MuPDF

>
>

Choosing between Ghostscript and MuPDF

 
Changed:
<
<
GhostScript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes be hard to know which one to use in a given situation.
>
>
Ghostscript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes be hard to know which one to use in a given situation.
 

Input languages

Changed:
<
<
If you need the ability to handle PostScript input, then you must use GhostScript.
>
>
If you need the ability to handle PostScript input, then you must use Ghostscript.
 
Changed:
<
<
If you need the ability to handle PCL input, then you must use GhostPCL (a PCL parser on top of the GhostScript graphics library).
>
>
If you need the ability to handle PCL input, then you must use GhostPCL (a PCL parser on top of the Ghostscript graphics library).
 
Changed:
<
<
Similarly GhostXPS is an XPS parser written on top of the GhostScript graphics library.
>
>
Similarly GhostXPS is an XPS parser written on top of the Ghostscript graphics library.
 
Changed:
<
<
For the rest of this discussion we will just say "GhostScript" when we actually mean "GhostScript, GhostPCL and GhostXPS "; everything we say about GhostScript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "GhostPDL".
>
>
For the rest of this discussion we will just say "Ghostscript" when we actually mean "Ghostscript, GhostPCL and GhostXPS "; everything we say about Ghostscript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "!GhostPDL".
 
Changed:
<
<
If you need the ability to handle EPUB or CBZ input, then you must use MuPDF.
>
>
If you need the ability to handle EPUB or CBZ input, then you must use MuPDF.
 
Changed:
<
<
Both MuPDF and GhostScript can handle PDF and XPS input.
>
>
Both MuPDF and Ghostscript can handle PDF and XPS input.
 
Changed:
<
<
MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. GhostScript is distributed with PostScript "helper files" to handle JPEG, GIF, MIFF (ImageMagick format) and raw files and can be persuaded to handle other formats using this type of PostScript program.
>
>
MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. Ghostscript is distributed with PostScript "helper files" to handle JPEG, GIF, MIFF (ImageMagick format) and raw files and can be persuaded to handle other formats using this type of PostScript program.
 
Changed:
<
<

Colour Management

>
>

Color Management

 
Changed:
<
<
Currently, MuPDF does not offer any colour management options. Therefore if a colour managed workflow is required, you need to use GhostScript. The colour management of GhostScript uses ICC profiles and is extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different colour management for object types (text, images and vector graphics) and separations.
>
>
Currently, MuPDF does not offer any color management options. Therefore if a color managed workflow is required, you need to use Ghostscript. The color management of Ghostscript uses ICC profiles and is extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different color management for object types (text, images and vector graphics) and separations.
 

Output options

Changed:
<
<
If you want to output PostScript, PCL/XL, PDF, or XPS, or you want to output to a MS Windows printer, then you need to use GhostScript.
>
>
If you want to output PostScript, PCL/XL, PDF, or XPS, or you want to output to a MS Windows printer, then you need to use Ghostscript.
 

Printer output

Changed:
<
<
As a rule of thumb, if you want printer output, you probably want to be leaning towards using GhostScript.
>
>
As a rule of thumb, if you want printer output, you probably want to be leaning towards using Ghostscript.
 
Changed:
<
<
If you want to output to a printer, then it is a question of whether GhostScript or MuPDF supports your printer out of the box. GhostScript has support for many printers that MuPDF does not, including a "uniprint" (Universal Printer) output module that allows many more printers to be supported by creating "upp" parameter files.
>
>
If you want to output to a printer, then it is a question of whether Ghostscript or MuPDF supports your printer out of the box. Ghostscript has support for many printers that MuPDF does not, including a "uniprint" (Universal Printer) output module that allows many more printers to be supported by creating "upp" parameter files.
 
Changed:
<
<
MuPDF does have support for some printer outputs (such as PCL and CUPS ones). If you use MuPDF and want to print to something other than a PCL printer then you are going to need to add some C code yourself.
>
>
MuPDF does have support for some printer outputs (such as PCL and CUPS ones). If you use MuPDF and want to print to something other than a PCL printer then you are going to need to add some C code yourself.
 
Changed:
<
<
Both MuPDF and GhostScript can produce PWG format output (aka CUPS format, used for printing on Linux systems), but GhostScript can handle more of the different possible output colour spaces.
>
>
Both MuPDF and Ghostscript can produce PWG format output (aka CUPS format, used for printing on Linux systems), but Ghostscript can handle more of the different possible output color spaces.
 
Changed:
<
<
If you want to output for a printer type that is not currently supported by either GhostScript, CUPS or the existing "upp" files then you are going to need to add some code yourself (possibly a "upp" file or C code).
>
>
If you want to output for a printer type that is not currently supported by either Ghostscript, CUPS or the existing "upp" files then you are going to need to add some code yourself (possibly a "upp" file or C code).
 

Adding a new printer type - via bitmap output

Changed:
<
<
The easiest mechanism for outputting to a printer that is not already supported or that cannot be supported using the "uniprint" module is to get GhostScript or MuPDF to render to a bitmap, and then for convert that bitmap into a data stream for your printer.
>
>
The easiest mechanism for outputting to a printer that is not already supported or that cannot be supported using the "uniprint" module is to get Ghostscript or MuPDF to render to a bitmap, and then for convert that bitmap into a data stream for your printer.
 
Changed:
<
<
GhostScript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap. Other such conversions can of course be added by the integrator.
>
>
Ghostscript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap. Other such conversions can of course be added by the integrator.
 
Changed:
<
<
MuPDF can render in RGB, Greyscale, or CMYK. GhostScript is capable of all this, and also of handling colour separations and DeviceN colors.
>
>
MuPDF can render in RGB, Greyscale, or CMYK. Ghostscript is capable of all this, and also of handling color separations and DeviceN colors.
 

Adding a new printer type - via high level output

By 'high level output' we mean making use of vector, text or image objects rather than breaking everything down to simple rasterised bitmaps.

Changed:
<
<
If you wish to drive a printer with some different type of high level format, then both GhostScript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.
>
>
If you wish to drive a printer with some different type of high level format, then both Ghostscript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.
 
Changed:
<
<
GhostScript has high level devices to output PostScript (Level 2) and PCL-6 (aka PCL/XL).
>
>
Ghostscript has high level devices to output PostScript (Level 2) and PCL-6 (aka PCL/XL).
 
Changed:
<
<
While MuPDF does not currently offer any fully functional devices, it has both SVG output and PDF output modules that demonstrate its abilities. A third-party has implemented a GDI based output for doing rendering on Windows.
>
>
While MuPDF does not currently offer any fully functional devices, it has both SVG output and PDF output modules that demonstrate its abilities. A third-party has implemented a GDI based output for doing rendering on Windows.
 
Changed:
<
<
It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.
>
>
It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.
 

Bitmap output

Changed:
<
<
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, or if you need JPEG, TIFF, MIFF, BMP, PCX, PSD (Photoshop) or raw output use GhostScript.
>
>
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, or if you need JPEG, TIFF, MIFF, BMP, PCX, PSD (Photoshop) or raw output use Ghostscript.
 
Changed:
<
<
If you want TGA (TrueVision) use MuPDF.
>
>
If you want TGA (TrueVision) use MuPDF.
 
Changed:
<
<
Both GhostScript and MuPDF support PBM, PGM, PPM, PAM, PNG and both have the ability to do Anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than GhostScript. If anti-aliased output is important to you, then MuPDF is probably a better bet.
>
>
Both Ghostscript and MuPDF support PBM, PGM, PPM, PAM, PNG and both have the ability to do anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than Ghostscript. If anti-aliased output is important to you, then MuPDF is probably a better bet.
 
Changed:
<
<
As a rule of thumb, if you are rendering PDF or XPS input for display based use, you probably want to be leaning towards MuPDF.
>
>
As a rule of thumb, if you are rendering PDF or XPS input for display based use, you probably want to be leaning towards MuPDF.
 

Interactive behaviour

Changed:
<
<
Viewers can be built either with GhostScript or MuPDF, but MuPDF is much better suited to this task.
>
>
Viewers can be built either with Ghostscript or MuPDF, but MuPDF is much better suited to this task.
 
Changed:
<
<
GhostScript cannot handle interactive features such as form filling, whereas MuPDF can, and MuPDF has support for incremental loading of Linearized (Web optimized) PDFs from web sites which can improve viewers response times.
>
>
Ghostscript cannot handle interactive features such as form filling, whereas MuPDF can, and MuPDF has support for incremental loading of Linearized (Web optimized) PDFs from web sites which can improve viewers response times.
 

Banded rendering

Changed:
<
<
Both GhostScript and MuPDF are capable of rendering pages in bands to keep memory usage down.
>
>
Both Ghostscript and MuPDF are capable of rendering pages in bands to keep memory usage down.
 
Changed:
<
<
GhostScript can be built with the ability to make use of RAM or disc based storage for its display list, whereas MuPDF runs entirely using RAM.
>
>
Ghostscript can be built with the ability to make use of RAM or disc based storage for its display list, whereas MuPDF runs entirely using RAM.
 
Changed:
<
<
GhostScript can make its own decisions about how big a band buffer to use (though it can be told explicitly by the caller), whereas MuPDF always leaves this to the caller to specify.
>
>
Ghostscript can make its own decisions about how big a band buffer to use (though it can be told explicitly by the caller), whereas MuPDF always leaves this to the caller to specify.
 

Multithreaded operation

Changed:
<
<
Both GhostScript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.
>
>
Both Ghostscript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.
 
Changed:
<
<
GhostScript allows for one page to be rendered in background threads while the display list for the next page is created by the interpreter. GhostScript can render multiple bands in parallel.
>
>
Ghostscript allows for one page to be rendered in background threads while the display list for the next page is created by the interpreter. Ghostscript can render multiple bands in parallel.
 
Changed:
<
<
The decision of how to handle threads is divorced from the core of MuPDF. It is possible to implement both of the above schemes with MuPDF, as well as many others (such as rendering thumbnails for pages on a background thread, while rendering current pages at different zoom levels).
>
>
The decision of how to handle threads is divorced from the core of MuPDF. It is possible to implement both of the above schemes with MuPDF, as well as many others (such as rendering thumbnails for pages on a background thread, while rendering current pages at different zoom levels).
 
Changed:
<
<
GhostScript offers certain common tasks in a ready rolled package. MuPDF requires slightly more integration, but is ultimately more flexible for it.
>
>
Ghostscript offers certain common tasks in a ready rolled package. MuPDF requires slightly more integration, but is ultimately more flexible for it.
 

Manipulation of PDF files

Changed:
<
<
GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files, reduce the size, extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency. Ghostscript can also encrypt the resulting PDF file allowing for separate "owner" and "user" passwords so that users can be give a restricted set of permissions.
>
>
Ghostscript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files, reduce the size, extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency. Ghostscript can also encrypt the resulting PDF file allowing for separate "owner" and "user" passwords so that users can be give a restricted set of permissions.
 
Changed:
<
<
MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions, linearisation or addition of annotations without losing the existing information within the file.
>
>
MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions, linearisation or addition of annotations without losing the existing information within the file.
 

Porting

Changed:
<
<
Both GhostScript and MuPDF are highly portable. Opinions differ between engineers as to which is easier to embed. GhostScript (and GhostPCL) have been embedded in several printers and MuPDF has been embedded in many tablets and smart phones.
>
>
Both Ghostscript and MuPDF are highly portable. Opinions differ between engineers as to which is easier to embed. Ghostscript (and GhostPCL) have been embedded in several printers and MuPDF has been embedded in many tablets and smart phones.
 

Speed

Changed:
<
<
The actual rendering speeds of GhostScript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.
>
>
The actual rendering speeds of Ghostscript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.
  -- Robin Watts - 2015-04-03

Revision 72015-04-08 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between GhostScript and MuPDF

Line: 96 to 96
 

Manipulation of PDF files

Changed:
<
<
GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files reduce the size or to extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency. Ghostscript can also encrypt the resulting PDF file allowing for separate "owner" and "user" passwords so that users can be give a restricted set of permissions.
>
>
GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files, reduce the size, extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency. Ghostscript can also encrypt the resulting PDF file allowing for separate "owner" and "user" passwords so that users can be give a restricted set of permissions.
  MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions, linearisation or addition of annotations without losing the existing information within the file.

Revision 62015-04-08 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between GhostScript and MuPDF

Line: 96 to 96
 

Manipulation of PDF files

Changed:
<
<
GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files reduce the size or to extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency.
>
>
GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files reduce the size or to extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency. Ghostscript can also encrypt the resulting PDF file allowing for separate "owner" and "user" passwords so that users can be give a restricted set of permissions.
  MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions, linearisation or addition of annotations without losing the existing information within the file.

Revision 52015-04-07 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between GhostScript and MuPDF

Changed:
<
<
GhostScript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes to know which one to use in a given situation.
>
>
GhostScript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes be hard to know which one to use in a given situation.
 

Input languages

Changed:
<
<
If you need the ability to handle PostScript or PCL input, then you must use GhostScript or GhostPCL (a PCL parser on top of the GhostScript graphics library).
>
>
If you need the ability to handle PostScript input, then you must use GhostScript.

If you need the ability to handle PCL input, then you must use GhostPCL (a PCL parser on top of the GhostScript graphics library).

Similarly GhostXPS is an XPS parser written on top of the GhostScript graphics library.

 
Changed:
<
<
If you need the ability to handle EPUB or GBZ input, then you must use MuPDF.
>
>
For the rest of this discussion we will just say "GhostScript" when we actually mean "GhostScript, GhostPCL and GhostXPS"; everything we say about GhostScript applies to the others as they shares the same basic structure and devices. In other documents you may see all three of these referred to collectively as "GhostPDL".
 
Changed:
<
<
Both MuPDF and GhostScript can handle PDF and XPS input (GhostXPS is a the XPS parser on top of the GhostScript graphics library).
>
>
If you need the ability to handle EPUB or CBZ input, then you must use MuPDF.

Both MuPDF and GhostScript can handle PDF and XPS input.

  MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. GhostScript is distributed with PostScript "helper files" to handle JPEG, GIF, MIFF (ImageMagick format) and raw files and can be persuaded to handle other formats using this type of PostScript program.
Added:
>
>
 

Colour Management

Changed:
<
<
Currently, MuPDF does not offer any colour management options. Therefore if a colour managed workflow is required, you need to use GhostScript. The color management of GhostScript uses ICC profiles and is extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different color management for object types (text, images and vector graphics) and separations.
>
>
Currently, MuPDF does not offer any colour management options. Therefore if a colour managed workflow is required, you need to use GhostScript. The colour management of GhostScript uses ICC profiles and is extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different colour management for object types (text, images and vector graphics) and separations.
 

Output options

If you want to output PostScript, PCL/XL, PDF, or XPS, or you want to output to a MS Windows printer, then you need to use GhostScript.

Line: 18 to 27
 

Output options

If you want to output PostScript, PCL/XL, PDF, or XPS, or you want to output to a MS Windows printer, then you need to use GhostScript.

Added:
>
>
 

Printer output

As a rule of thumb, if you want printer output, you probably want to be leaning towards using GhostScript.

Changed:
<
<
If you want to output to a printer, then it is a question of whether GhostScript or MuPDF supports your printer out of the box. GhostScript has support for many printers that MuPDF does not including output in CUPS format for printing on linux and other Unix systems and a "uniprint" (Universal Printer) output module that allows many more printers to be supported by creating "upp" parameter files.
>
>
If you want to output to a printer, then it is a question of whether GhostScript or MuPDF supports your printer out of the box. GhostScript has support for many printers that MuPDF does not, including a "uniprint" (Universal Printer) output module that allows many more printers to be supported by creating "upp" parameter files.

MuPDF does have support for some printer outputs (such as PCL and CUPS ones). If you use MuPDF and want to print to something other than a PCL printer then you are going to need to add some C code yourself.

 
Changed:
<
<
MuPDF does have support for some printer outputs (such as PCL ones). If you use MuPDF and want to print to something other than a PCL printer then you are going to need to add some C code yourself.
>
>
Both MuPDF and GhostScript can produce PWG format output (aka CUPS format, used for printing on Linux systems), but GhostScript can handle more of the different possible output colour spaces.
  If you want to output for a printer type that is not currently supported by either GhostScript, CUPS or the existing "upp" files then you are going to need to add some code yourself (possibly a "upp" file or C code).
Added:
>
>
 

Adding a new printer type - via bitmap output

Changed:
<
<
The easiest mechanism for outputting to a printer that is not already supported or that cannot be suppprted using the "uniprint" module is to get GhostScript or MuPDF to render to a bitmap, and then for convert that bitmap into a data stream for your printer.
>
>
The easiest mechanism for outputting to a printer that is not already supported or that cannot be supported using the "uniprint" module is to get GhostScript or MuPDF to render to a bitmap, and then for convert that bitmap into a data stream for your printer.
 
Changed:
<
<
GhostScript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap.
>
>
GhostScript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap. Other such conversions can of course be added by the integrator.

MuPDF can render in RGB, Greyscale, or CMYK. GhostScript is capable of all this, and also of handling colour separations and DeviceN colors.

 
Deleted:
<
<
MuPDF can render in RGB, Greyscale, or CMYK. GhostScript is capable of all this, and also of handling color separations and DeviceN colors.
 

Adding a new printer type - via high level output

Added:
>
>
By 'high level output' we mean making use of vector, text or image objects rather than breaking everything down to simple rasterised bitmaps.

If you wish to drive a printer with some different type of high level format, then both GhostScript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.

 GhostScript has high level devices to output PostScript (Level 2) and PCL-6 (aka PCL/XL).
Changed:
<
<
If you wish to drive a printer with some different type of high level format (using vector objects rather than simple bitmap data), then both GhostScript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.
>
>
While MuPDF does not currently offer any fully functional devices, it has both SVG output and PDF output modules that demonstrate its abilities. A third-party has implemented a GDI based output for doing rendering on Windows.
  It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.
Added:
>
>
 

Bitmap output

Changed:
<
<
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, or if you need JPEG, TIFF, MIFF, BMP, PCX PSD (Photoshop) or raw output use GhostScript.
>
>
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, or if you need JPEG, TIFF, MIFF, BMP, PCX, PSD (Photoshop) or raw output use GhostScript.
  If you want TGA (TrueVision) use MuPDF.
Line: 50 to 69
 Both GhostScript and MuPDF support PBM, PGM, PPM, PAM, PNG and both have the ability to do Anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than GhostScript. If anti-aliased output is important to you, then MuPDF is probably a better bet.

As a rule of thumb, if you are rendering PDF or XPS input for display based use, you probably want to be leaning towards MuPDF.

Added:
>
>
 

Interactive behaviour

Viewers can be built either with GhostScript or MuPDF, but MuPDF is much better suited to this task.

Changed:
<
<
GhostScript cannot handle interactive features such as form filling, whereas MuPDF can, and MuPDF has support for incremental loading of a Linearized (Web optimized) PDF from a web site which can improve viewers.
>
>
GhostScript cannot handle interactive features such as form filling, whereas MuPDF can, and MuPDF has support for incremental loading of Linearized (Web optimized) PDFs from web sites which can improve viewers response times.
 

Banded rendering

Both GhostScript and MuPDF are capable of rendering pages in bands to keep memory usage down.

Line: 62 to 83
 GhostScript can be built with the ability to make use of RAM or disc based storage for its display list, whereas MuPDF runs entirely using RAM.

GhostScript can make its own decisions about how big a band buffer to use (though it can be told explicitly by the caller), whereas MuPDF always leaves this to the caller to specify.

Added:
>
>
 

Multithreaded operation

Changed:
<
<
Both GhostScript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content. GhostScript allows for one page to be rendered in background threads while the display list for the next page is created by the interpreter. GhostScript can render mutiple bands in parallel.
>
>
Both GhostScript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.

GhostScript allows for one page to be rendered in background threads while the display list for the next page is created by the interpreter. GhostScript can render multiple bands in parallel.

The decision of how to handle threads is divorced from the core of MuPDF. It is possible to implement both of the above schemes with MuPDF, as well as many others (such as rendering thumbnails for pages on a background thread, while rendering current pages at different zoom levels).

GhostScript offers certain common tasks in a ready rolled package. MuPDF requires slightly more integration, but is ultimately more flexible for it.

 

Manipulation of PDF files

GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files reduce the size or to extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency.

Changed:
<
<
MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions or addition of annotations without losing the existing information within the file.
>
>
MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions, linearisation or addition of annotations without losing the existing information within the file.
 

Porting

Both GhostScript and MuPDF are highly portable. Opinions differ between engineers as to which is easier to embed. GhostScript (and GhostPCL) have been embedded in several printers and MuPDF has been embedded in many tablets and smart phones.

Added:
>
>

Speed

The actual rendering speeds of GhostScript and MuPDF are broadly similar. MuPDF benefits from having its PDF handling written in C, so is faster at navigating and extracting information from PDF files.

 -- Robin Watts - 2015-04-03

-- Ray Johnston - 2015-04-07

Revision 42015-04-07 - RayJohnston

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Changed:
<
<

Choosing between Ghostscript and MuPDF

Ghostscript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes to know which one to use in a given situation.

>
>

Choosing between GhostScript and MuPDF

 
Added:
>
>
GhostScript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes to know which one to use in a given situation.
 

Input languages

Changed:
<
<
If you need the ability to handle Postscript (or PCL) input, then you must use Ghostscript (or GhostPCL).
>
>
If you need the ability to handle PostScript or PCL input, then you must use GhostScript or GhostPCL (a PCL parser on top of the GhostScript graphics library).
  If you need the ability to handle EPUB or GBZ input, then you must use MuPDF.
Changed:
<
<
Both MuPDF and Ghostscript can handle PDF and XPS input.

MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. Ghostscript can be persuaded to handle such formats using postscript programs.

>
>
Both MuPDF and GhostScript can handle PDF and XPS input (GhostXPS is a the XPS parser on top of the GhostScript graphics library).
 
Added:
>
>
MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. GhostScript is distributed with PostScript "helper files" to handle JPEG, GIF, MIFF (ImageMagick format) and raw files and can be persuaded to handle other formats using this type of PostScript program.
 

Colour Management

Changed:
<
<
Currently, MuPDF does not offer any colour management options. Therefore if a colour managed workflow is required, you need to use Ghostscript.
>
>
Currently, MuPDF does not offer any colour management options. Therefore if a colour managed workflow is required, you need to use GhostScript. The color management of GhostScript uses ICC profiles and is extensive (refer to http://www.ghostscript.com/doc/current/GS9_Color_Management.pdf), supporting different color management for object types (text, images and vector graphics) and separations.
 

Output options

Changed:
<
<
If you want to output to pdf or xps, then you need to use Ghostscript.
>
>
If you want to output PostScript, PCL/XL, PDF, or XPS, or you want to output to a MS Windows printer, then you need to use GhostScript.
 

Printer output

Changed:
<
<
If you want to output to a printer, then it is a question of whether Ghostscript or MuPDF support your printer out of the box. Ghostscript has support for many printers that MuPDF does not.
>
>
As a rule of thumb, if you want printer output, you probably want to be leaning towards using GhostScript.
 
Changed:
<
<
MuPDF does have support for some printer outputs (such as PCL ones), but this support is not as extensive as Ghostscript's.
>
>
If you want to output to a printer, then it is a question of whether GhostScript or MuPDF supports your printer out of the box. GhostScript has support for many printers that MuPDF does not including output in CUPS format for printing on linux and other Unix systems and a "uniprint" (Universal Printer) output module that allows many more printers to be supported by creating "upp" parameter files.
 
Changed:
<
<
As a rule of thumb, if you want printer output, you probably want to be leaning towards using Ghostscript.

If you want to output for a printer type that is not currently supported by either Ghostscript or MuPDF, then you are going to need to add some code yourself.

>
>
MuPDF does have support for some printer outputs (such as PCL ones). If you use MuPDF and want to print to something other than a PCL printer then you are going to need to add some C code yourself.
 
Added:
>
>
If you want to output for a printer type that is not currently supported by either GhostScript, CUPS or the existing "upp" files then you are going to need to add some code yourself (possibly a "upp" file or C code).
 

Adding a new printer type - via bitmap output

Changed:
<
<
The easiest mechanism for outputting to a printer is to get Ghostscript or MuPDF to render to a bitmap, and then for you to convert that bitmap into a data stream for your printer.

Ghostscript has the ability to do a range of different halftoning techniques for Monochrome printers. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap.

>
>
The easiest mechanism for outputting to a printer that is not already supported or that cannot be suppprted using the "uniprint" module is to get GhostScript or MuPDF to render to a bitmap, and then for convert that bitmap into a data stream for your printer.
 
Changed:
<
<
MuPDF can render in RGB, Greyscale, or CMYK. Ghostscript is capable of all this, and also of handling color separations and DeviceN colors.
>
>
GhostScript has the ability to do a range of different halftoning techniques for Monochrome printers including ordered (spot) dither based on threshold arrays or functions and error diffusion. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap.
 
Added:
>
>
MuPDF can render in RGB, Greyscale, or CMYK. GhostScript is capable of all this, and also of handling color separations and DeviceN colors.
 

Adding a new printer type - via high level output

Changed:
<
<
If you wish to drive your printer in high level mode (using vector objects rather than simple bitmap data), then both Ghostscript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.
>
>
GhostScript has high level devices to output PostScript (Level 2) and PCL-6 (aka PCL/XL).
 
Changed:
<
<
It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.
>
>
If you wish to drive a printer with some different type of high level format (using vector objects rather than simple bitmap data), then both GhostScript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.
 
Added:
>
>
It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.
 

Bitmap output

Changed:
<
<
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, use Ghostscript.
>
>
If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, or if you need JPEG, TIFF, MIFF, BMP, PCX PSD (Photoshop) or raw output use GhostScript.
 
Changed:
<
<
Both Ghostscript and MuPDF have the ability to do Anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than Ghostscript. If anti-aliased output is important to you, then MuPDF is probably a better bet.
>
>
If you want TGA (TrueVision) use MuPDF.
 
Changed:
<
<
As a rule of thumb, if you are rendering non postscript input for display based use, you probably want to be leaning towards MuPDF.
>
>
Both GhostScript and MuPDF support PBM, PGM, PPM, PAM, PNG and both have the ability to do Anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than GhostScript. If anti-aliased output is important to you, then MuPDF is probably a better bet.
 
Added:
>
>
As a rule of thumb, if you are rendering PDF or XPS input for display based use, you probably want to be leaning towards MuPDF.
 

Interactive behaviour

Changed:
<
<
Viewers can be built either with Ghostscript or MuPDF, but MuPDF is much more suited to this task.

Ghostscript cannot handle interactive features such as form filling, whereas MuPDF can.

>
>
Viewers can be built either with GhostScript or MuPDF, but MuPDF is much better suited to this task.
 
Added:
>
>
GhostScript cannot handle interactive features such as form filling, whereas MuPDF can, and MuPDF has support for incremental loading of a Linearized (Web optimized) PDF from a web site which can improve viewers.
 

Banded rendering

Changed:
<
<
Both Ghostscript and MuPDF are capable of rendering pages in bands to keep memory usage down.
>
>
Both GhostScript and MuPDF are capable of rendering pages in bands to keep memory usage down.
 
Changed:
<
<
Ghostscript can be built with the ability to make use of backing store (such as disc based storage) for its display list, whereas MuPDF runs entirely using RAM.

Ghostscript can make its own decisions about how big a band buffer to use (though it can be told explicitly by the caller), whereas MuPDF always leaves this to the caller to specify.

>
>
GhostScript can be built with the ability to make use of RAM or disc based storage for its display list, whereas MuPDF runs entirely using RAM.
 
Added:
>
>
GhostScript can make its own decisions about how big a band buffer to use (though it can be told explicitly by the caller), whereas MuPDF always leaves this to the caller to specify.
 

Multithreaded operation

Changed:
<
<
Both Ghostscript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.
>
>
Both GhostScript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content. GhostScript allows for one page to be rendered in background threads while the display list for the next page is created by the interpreter. GhostScript can render mutiple bands in parallel.
 

Manipulation of PDF files

Changed:
<
<
Ghostscript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files or to extract pages etc. Extra (non-graphical) information in the PDFs (such as structural information, bookmarks etc) is lost during this process.
>
>
GhostScript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files reduce the size or to extract pages, change the color model, etc. Some (non-graphical) information in the PDFs (such as structural information, bookmarks etc) may be lost during this process. The type of PDF file created by Ghostscript can be PDF/A-1, PDF/A-2 or PDF/X-3 and a PDF (1.4 and above) that has transparency can be "flattened" to make a PDF 1.3 that does not use transparency.
  MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions or addition of annotations without losing the existing information within the file.
Deleted:
<
<
 

Porting

Changed:
<
<
Both Ghostscript and MuPDF are highly portable. Opinions differ between engineers as to which is easier to embed.
>
>
Both GhostScript and MuPDF are highly portable. Opinions differ between engineers as to which is easier to embed. GhostScript (and GhostPCL) have been embedded in several printers and MuPDF has been embedded in many tablets and smart phones.
  -- Robin Watts - 2015-04-03
Added:
>
>
-- Ray Johnston - 2015-04-07
 

Comments

Deleted:
<
<
<--/commentPlugin-->
 \ No newline at end of file
Added:
>
>

<--/commentPlugin-->

Revision 32015-04-07 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 52 to 52
  Both Ghostscript and MuPDF have the ability to do Anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than Ghostscript. If anti-aliased output is important to you, then MuPDF is probably a better bet.
Added:
>
>
As a rule of thumb, if you are rendering non postscript input for display based use, you probably want to be leaning towards MuPDF.
 

Interactive behaviour

Viewers can be built either with Ghostscript or MuPDF, but MuPDF is much more suited to this task.

Line: 64 to 66
  Ghostscript can be built with the ability to make use of backing store (such as disc based storage) for its display list, whereas MuPDF runs entirely using RAM.
Added:
>
>
Ghostscript can make its own decisions about how big a band buffer to use (though it can be told explicitly by the caller), whereas MuPDF always leaves this to the caller to specify.
 

Multithreaded operation

Both Ghostscript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.

Line: 76 to 80
 

Porting

Changed:
<
<
Both Ghostscript and MuPDF are highly portable, but MuPDF is probably a better bet for embedded or resource constrained devices.
>
>
Both Ghostscript and MuPDF are highly portable. Opinions differ between engineers as to which is easier to embed.
 

-- Robin Watts - 2015-04-03

Revision 22015-04-07 - RobinWatts

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Line: 38 to 38
  Ghostscript has the ability to do a range of different halftoning techniques for Monochrome printers. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap.
Added:
>
>
MuPDF can render in RGB, Greyscale, or CMYK. Ghostscript is capable of all this, and also of handling color separations and DeviceN colors.
 

Adding a new printer type - via high level output

If you wish to drive your printer in high level mode (using vector objects rather than simple bitmap data), then both Ghostscript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.

Revision 12015-04-03 - RobinWatts

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="WebHome"

Choosing between Ghostscript and MuPDF

Ghostscript and MuPDF are both high quality renderers for page description languages. While there is considerable overlap in their abilities, each one is tailored for slightly different requirements. It can therefore sometimes to know which one to use in a given situation.

Input languages

If you need the ability to handle Postscript (or PCL) input, then you must use Ghostscript (or GhostPCL).

If you need the ability to handle EPUB or GBZ input, then you must use MuPDF.

Both MuPDF and Ghostscript can handle PDF and XPS input.

MuPDF handles bitmap formats such as JPEG, PNG and TIF natively. Ghostscript can be persuaded to handle such formats using postscript programs.

Colour Management

Currently, MuPDF does not offer any colour management options. Therefore if a colour managed workflow is required, you need to use Ghostscript.

Output options

If you want to output to pdf or xps, then you need to use Ghostscript.

Printer output

If you want to output to a printer, then it is a question of whether Ghostscript or MuPDF support your printer out of the box. Ghostscript has support for many printers that MuPDF does not.

MuPDF does have support for some printer outputs (such as PCL ones), but this support is not as extensive as Ghostscript's.

As a rule of thumb, if you want printer output, you probably want to be leaning towards using Ghostscript.

If you want to output for a printer type that is not currently supported by either Ghostscript or MuPDF, then you are going to need to add some code yourself.

Adding a new printer type - via bitmap output

The easiest mechanism for outputting to a printer is to get Ghostscript or MuPDF to render to a bitmap, and then for you to convert that bitmap into a data stream for your printer.

Ghostscript has the ability to do a range of different halftoning techniques for Monochrome printers. MuPDF renders in contone, and then has code in it to do simple thresholding based halftoning to give a monochrome bitmap.

Adding a new printer type - via high level output

If you wish to drive your printer in high level mode (using vector objects rather than simple bitmap data), then both Ghostscript and MuPDF can handle this. Both products require you to implement a 'device' to perform graphics operations on a virtual page.

It is beyond the scope of this document to talk more about this here. Discuss your needs with an Artifex engineer to get more advice.

Bitmap output

If you are outputting to a bitmap other than monochrome, greyscale, RGB or CMYK, use Ghostscript.

Both Ghostscript and MuPDF have the ability to do Anti-aliased rendering, but MuPDF has this embedded in the renderer at a lower level than Ghostscript. If anti-aliased output is important to you, then MuPDF is probably a better bet.

Interactive behaviour

Viewers can be built either with Ghostscript or MuPDF, but MuPDF is much more suited to this task.

Ghostscript cannot handle interactive features such as form filling, whereas MuPDF can.

Banded rendering

Both Ghostscript and MuPDF are capable of rendering pages in bands to keep memory usage down.

Ghostscript can be built with the ability to make use of backing store (such as disc based storage) for its display list, whereas MuPDF runs entirely using RAM.

Multithreaded operation

Both Ghostscript and MuPDF interpret pages using a single thread, but both can use multiple threads to actually render the page content.

Manipulation of PDF files

Ghostscript has the ability to read PDF (or other format) files, to break it down into graphical objects and to make completely new PDF files from it. Some users make use of this to 'sanitise' PDF files or to extract pages etc. Extra (non-graphical) information in the PDFs (such as structural information, bookmarks etc) is lost during this process.

MuPDF has the ability to directly manipulate PDF files. While it cannot convert a non-PDF file to a PDF file, it can perform operations such as page deletions or addition of annotations without losing the existing information within the file.

Porting

Both Ghostscript and MuPDF are highly portable, but MuPDF is probably a better bet for embedded or resource constrained devices.

-- Robin Watts - 2015-04-03

Comments

<--/commentPlugin-->
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright 2014 Artifex Software Inc