PDF: Using MRC compression for encoding document images to PDF format
In This Topic
1. General principles and applicability of MRC compression
MRC (Mixed Raster Content) compression - a technology for compressing color image by separating image into layers with essentially different characteristics. Based on characteristics of layer the layer is compressed using the most efficient and accurate compression algorithm.
The best method to achieve the highest compression ratio while maintaining acceptable quality is the compression of different image areas according to their individual characteristics. Bi-level details associated with text and line-art graphics would be compressed with an approach that puts high emphasis on maintaining the detail and structure of the input images. Continuous-tone images and multi-level continuous-tone colors would be compressed with an approach that puts high emphasis on maintaining the smoothness and accuracy of the colors.
Here is C#/VB.NET code that demonstrates how the image is separated into layers using MRC compression algorithm:
MRC compression is applicable for color images only and it is ideal for compressing scanned color documents. Compression works efficiently for color document images with text, line-art graphics and full-color images. MRC compression uses different compression algorithms for different kind of graphics and this gives the best compression results unlike the situation when just one compression algorithm is applied to the whole image.
2. Using MRC compression for encoding images to PDF format
MRC compression is used for encoding one or more color images to PDF format. The introduced algorithm provides lossy compression.
Vintasoft.Imaging.Pdf.Mrc.dll assembly contains classes responsible for image encoding in PDF using MRC compression:
PdfMrcCompressionSettings.EnableMrcCompression property specifies that MRC compression must be used for encoding image to a PDF format. False value means that
PdfMrcEncoder class will perform image encoding using methods of basic
PdfEncoder class, i.e. using common (image-only) compression algorithm.
The following plug-ins are mandatory for using MRC compression:
- VintaSoft PDF .NET Plug-in: Vintasoft.Imaging.Pdf.dll and Vintasoft.Imaging.Pdf.Mrc.dll.
- VintaSoft Document Cleanup .NET Plug-in: Vintasoft.Imaging.DocCleanup.dll.
The following plug-ins are recommended for getting the best compression and quality results:
- VintaSoft JPEG2000 .NET Plug-in: Vintasoft.Imaging.Jpeg2000.dll.
- VintaSoft JBIG2 .NET Plug-in: Vintasoft.Imaging.Jbig2.dll.
The following example demonstrates how to encode an image collection to a PDF document using MRC compression:
public static void EncodeImagesUseMrc(Vintasoft.Imaging.ImageCollection images, string pdfFilename)
{
// create PDF MRC encoder
Vintasoft.Imaging.Codecs.Encoders.PdfMrcEncoder encoder =
new Vintasoft.Imaging.Codecs.Encoders.PdfMrcEncoder();
// set MRC compression settings
SetCompressionSettings(encoder.MrcCompressionSettings);
// save images to PDF use MRC compression
images.SaveSync(pdfFilename, encoder);
}
private static void SetCompressionSettings(Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
// background layer
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg | Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 35;
// images layer, images placed to background layer
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
// mask layer
settings.HiQualityMask = true;
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
// front layer
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.FrontLayerCompressionSettings.JpegQuality = 25;
}
Public Shared Sub EncodeImagesUseMrc(images As Vintasoft.Imaging.ImageCollection, pdfFilename As String)
' create PDF MRC encoder
Dim encoder As New Vintasoft.Imaging.Codecs.Encoders.PdfMrcEncoder()
' set MRC compression settings
SetCompressionSettings(encoder.MrcCompressionSettings)
' save images to PDF use MRC compression
images.SaveSync(pdfFilename, encoder)
End Sub
Private Shared Sub SetCompressionSettings(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
' background layer
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 35
' images layer, images placed to background layer
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
' mask layer
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
' front layer
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.FrontLayerCompressionSettings.JpegQuality = 25
End Sub
2.1. Layers and algorithms used in MRC compression
MRC compression uses four layers:
- Background layer (full-color image) - includes background, background noise and other graphics elements which were not classified as text, line-art or picture.
- Images layer (a set of full-color images) - includes full-color images.
- Mask layer (black-white image) - includes text and line-art graphics.
- Front layer (palette image) - includes information about colors for Mask layer, provides the ability to save the color of text and line-art graphics.
Parameters and compression algorithm for each layer are specified individually, each layer can be disabled.
The following additional algorithms are used for analyzing the source image:
- The image segmentation algorithm, implemented in ImageSegmentationCommand class from Vintasoft.Imaging.DocClenup.dll assembly, is necessary for searching of full-color pictures in the source image and constructing the Images layer.
- The binarization algorithm, implemented in ChangePixelFormatToBlackWhiteCommand class from Vintasoft.Imaging.dll assembly, is necessary for binarization the source image and constructing the Mask layer containing text and line-art graphics.
2.2. Compression settings for Background layer
The following properties define how to compose and compress the Background layer:
The background layer generally stores not very important information, that's why is recommended to compress it using the lossy compression algorithms such as Jpeg+ZIP or Jpeg2000.
2.3. Compression settings for Images layer
The following properties define how to compose and compress the Images layer:
The processing and searching for full-color images can be disabled by setting the value of
PdfMrcCompressionSettings.ImageSegmentation and
PdfMrcCompressionSettings.ImageRegions property to null.
The Images layer stores full-color images, that's why is recommended to compress it using the algorithms Jpeg+ZIP or Jpeg2000 with acceptable loss in quality.
Important! If the
PdfMrcCompressionSettings.CreateImagesLayer property value is set to False (full-color images are placed onto Background layer) then the quality of encoded images can be managed using the compression settings of Background layer:
PdfMrcCompressionSettings.BackgroundLayerCompression,
PdfMrcCompressionSettings.BackgroundLayerCompressionSettings.
ImageSegmentationCommand has various settings allowing to set up the quality, sensitivity and accuracy of search for full-color images.
2.4. Compression settings for Mask layer
The following properties define how to compose and compress the Mask layer:
Important! The rectangle which is recognized as full-color image will be excluded from Mask layer (ref. to
PdfMrcCompressionSettings.ImageRegions and
PdfMrcCompressionSettings.ImageSegmentation properties).
By default, the image binarization with automatic threshold detection is used for composing the mask layer and in most cases it provides good compression results. For getting the best compression results the different binarization algorithms should be used for different types of document images.
The mask layer stores a black-white image, that's why is recommend to compress it using the Jbig2 or CCITT compression algorithm.
2.5. Compression settings for Front layer
The following properties define how to compose and compress the Front layer:
Front layer stores a palette image, that's why it could be compressed using ZIP algorithm. However, in case when text has a wide variety of different colors or there is applied a high color resolution (
PdfMrcCompressionSettings.HiQualityFrontLayer), then the best results with acceptable loss in quality give Jpeg+ZIP or Jpeg2000 compression algorithms.
2.6. Recommended MRC compression settings for different types of document images
Document images may be classified by following criteria:
- Document images with text and pictures.
- Document images with text only.
Here is C#/VB.NET code that shows how to compress the document images, which contain text and pictures, using MRC compression algorithm and get the resulting images with high quality:
public static void SetSetting_DocumentWithImagesHiQuality(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 60;
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Public Shared Sub SetSetting_DocumentWithImagesHiQuality(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 60
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
Here is C#/VB.NET code that shows how to compress the document images, which contain text and pictures, using MRC compression algorithm and get the resulting images with normal quality:
public static void SetSetting_DocumentWithImagesNormal(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 35;
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.FrontLayerCompressionSettings.JpegQuality = 25;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 400 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Public Shared Sub SetSetting_DocumentWithImagesNormal(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 35
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.FrontLayerCompressionSettings.JpegQuality = 25
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 400 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
Here is C#/VB.NET code that shows how to compress the document images, which contain text and pictures, using MRC compression algorithm and get the resulting images with high compression ratio:
public static void SetSetting_DocumentWithImagesHiCompression(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 20;
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
settings.HiQualityMask = false;
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = false;
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Zip;
}
Public Shared Sub SetSetting_DocumentWithImagesHiCompression(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 20
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
settings.HiQualityMask = False
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = False
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Zip
End Sub
Here is C#/VB.NET code that shows how to compress the document images, which contain text only, using MRC compression algorithm and get the resulting images with high quality:
Document images which do not contain full-color images, high quality:
public static void SetSetting_DocumentNoImagesHiQuality(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 30;
settings.ImageSegmentation = null;
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Public Shared Sub SetSetting_DocumentNoImagesHiQuality(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 30
settings.ImageSegmentation = Nothing
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
Here is C#/VB.NET code that shows how to compress the document images, which contain text only, using MRC compression algorithm and get the resulting images with normal quality:
public static void SetSetting_DocumentNoImagesNormal(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 25;
settings.ImageSegmentation = null;
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = false;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 350 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Public Shared Sub SetSetting_DocumentNoImagesNormal(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 25
settings.ImageSegmentation = Nothing
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = False
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 350 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
Here is C#/VB.NET code that shows how to compress the document images, which contain text only, using MRC compression algorithm and get the resulting images with high compression ratio:
public static void SetSetting_DocumentNoImagesHiCompression(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 20;
settings.ImageSegmentation = null;
settings.CreateImagesLayer = false;
settings.HiQualityMask = false;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = false;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 450 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Public Shared Sub SetSetting_DocumentNoImagesHiCompression(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 20
settings.ImageSegmentation = Nothing
settings.CreateImagesLayer = False
settings.HiQualityMask = False
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = False
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 450 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
3. Compression examples. Visual comparison of compression quality.
This visual comparison of compression quality was performed using 4 different images:
-
rasterized_noImages - rasterized page of PDF document without full-color images. Size 3450x4528, 24-bit. Contains tables, diagrams, text of various colors.
-
rasterized_withImages - rasterized page of PDF document with full-color images. Size 2158x3071, 24-bit. Contains tables, line-art, text of various colors.
-
scanned_noImages - scanned document page without full-color images. Size 4288x3010, 24-bit. Contains tables, line-art.
-
scanned_withImages - scanned document page with full-color images. Size 1276x1728, 24-bit. Contains full-color images, line-art, text of various colors.
After the MRC compression with chosen settings was applied, the source images were compressed using JPEG and JPEG2000 codecs so that to conform the size of compressed source files with the size of MRC compressed file.
Comparison of compressed image fragments:
rasterized_noImages, 42.79MB uncompressed:
PNG
3.664MB
1:12
|
|
|
PDF MRC
0.246MB
1:174
|
|
|
JPEG2000
0.252MB
1:170
|
|
|
JPEG
0.379MB
1:113
|
|
|
Comparison of compressed image fragments:
rasterized_withImages, 20.13MB uncompressed:
PNG
3.472MB
1:6
|
|
|
PDF MRC
0.144MB
1:139
|
|
|
JPEG2000
0.147MB
1:137
|
|
|
JPEG
0.170MB
1:118
|
|
|
Comparison of compressed image fragments:
scanned_noImages, 36.93MB uncompressed:
PNG
4.639MB
1:8
|
|
|
PDF MRC
0.205MB
1:180
|
|
|
JPEG2000
0.205MB
1:180
|
|
|
JPEG
0.212MB
1:174
|
|
|
Comparison of compressed image fragments:
scanned_withImages, 6.61MB uncompressed:
PNG
2.75MB
1:2.4
|
|
PDF MRC
0.112MB
1:59
|
|
JPEG2000
0.114MB
1:58
|
|
JPEG
0.118MB
1:56
|
|