ABBYY FineReader Engine ABBYY FineReader Engine

The most comprehensive OCR SDK for software developers

Integrate AI-powered OCR features into your applications.

REQUEST TRIALcontact us

Usage of multi-core CPUs and parallel processing

The flexible and scalable architecture of ABBYY FineReader Engine allows leveraging multi-core CPUs and processing images in parallel on multiple threads. This way, the processing speed can be significantly increased.

By default, ABBYY FineReader Engine automatically detects whether to use multiprocessing or not. This depends on several factors, such as the number of available physical or logical CPU cores of the computing system, number of CPU cores defined within the license, and number of pages the document contains. If needed, the developer can easily change multiprocessing settings and tune the number of processes that should be run.

Converting multi-page documents with a large number of pages

It generally means processing books, long reports, etc. In this case, you can recognize pages of the document in parallel and then perform synthesis and export in the main process. You can also, when using a pool of Engines, process several multi-page documents simultaneously, but the memory consumption can be huge and even lead to "out of memory" errors.

For parallel processing of multi-page documents, we recommend using FRDocument. It is the most easy-to-code multiprocessing way, because you do not have to implement any additional interfaces.

In this case opening, pre-processing, analysis and recognition are performed in parallel; synthesis is performed sequentially in the main process, and then export is again performed in parallel.

Converting a large number of one-page documents

This is the case when you process invoices, contracts, letters, etc. Parallel processing is recommended as one-page documents do not depend on each other and do not require large amounts of memory at once. 

FineReader Engine provides two options that can be used in this scenario:

  1. Using BatchProcessor.

    The advantages of this method is that it can be used when you do not know in advance the number of documents, they can be of different types, and must be processed directly once they arrive. This method requires more implementation effort: you have to implement interfaces for a file adapter and a custom source of images. Opening, pre-processing, analysis and recognition are performed in parallel.

  2. Using a pool of Engines loaded out-of-process by means of COM.

    This method is the most efficient in speed and automatically eliminates all difficulties related to multi-threading: all operations with the ABBYY FineReader Engine objects are serialized by means of COM.

Ready to try? Need more info?

Please fill in the form, and our sales specialist will contact you shortly.

I am aware that I can revoke my consent entirely or in part at any time with effect for the future.

To revoke your consent, please go to unsubscribe webpage or send email at dataprotection@abbyy.com.
You can also send a written declaration of your withdrawal of consent to ABBYY at PO BOX 16257, CY-2087, Nicosia, Cyprus.

By submitting this form, I consent to the use of my personal information for the purposes described in the Privacy Notice.

Thank you for your interest in ABBYY products!

We will get back to you shortly. If you’d like to contact ABBYY office in your region, please visit the Contacts page.

With best regards,
The ABBYY Team